找回密码
 立即注册

QQ登录

只需一步,快速开始

phoben 讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-7-26 20:03  /   查看:3498  /  回复:16
1金币
插件开发中,如何获取数据库中附件存储的文件夹绝对路径?

例如用"可预览附件上传"插件上传的文件,如何在命令型插件开发过程中,获取到这个应用的附件文件夹路径?

16 个回复

倒序浏览
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-7-27 15:56:55
沙发
大佬,这个确实没有接口可以做了~
给大佬一个思路吧~大佬可以去GlobalConfig中去取UploadRootPath的值,如果没有设置的话,说明是默认的附件路径。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
phoben讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-7-27 21:52:33
板凳
David.Zhong 发表于 2021-7-27 15:56
大佬,这个确实没有接口可以做了~
给大佬一个思路吧~大佬可以去GlobalConfig中去取UploadRootPath的值,如 ...

那默认的又是什么路径? 这个也取不到呢
回复 使用道具 举报
phoben讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-7-27 22:46:39
地板
David.Zhong 发表于 2021-7-27 15:56
大佬,这个确实没有接口可以做了~
给大佬一个思路吧~大佬可以去GlobalConfig中去取UploadRootPath的值,如 ...



对了,大佬,这个插件是可以获取服务端的文件绝对路径的 是咋实现的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-7-28 10:01:45
5#
phoben 发表于 2021-7-27 21:52
那默认的又是什么路径? 这个也取不到呢

默认的是在 C:\Users\Public\Documents\ForguncyServer\应用名\Upload 文件夹下。确实没有公开的方法啦,有我肯定给你了~
回复 使用道具 举报
15725821270悬赏达人认证 活字格认证
银牌会员   /  发表于:2021-8-3 10:12:10
6#

我之前直接这样用的。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
phoben讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-8-3 10:35:21
7#
15725821270 发表于 2021-8-3 10:12
我之前直接这样用的。。。

C#里面怎么取呢
回复 使用道具 举报
15725821270悬赏达人认证 活字格认证
银牌会员   /  发表于:2021-8-3 11:19:57
8#
本帖最后由 15725821270 于 2021-8-3 11:22 编辑
phoben 发表于 2021-8-3 10:35
C#里面怎么取呢

这个有用吗using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using GrapeCity.Forguncy.Commands;
using GrapeCity.Forguncy.Plugin;
using OperateFilesCommand.Properties;
using ServerDesignerCommon.Services;

namespace OperateFilesCommand
{
   
[OrderWeight(10
   
[Icon("pack://application:,,,/OperateFilesCommand;component/Resources/getFileFromDB.png"
   
public class GetFilesFromDatabase : FileOperateCommandBase, IServerCommandParamGenerator
   
{
        
[FormulaProperty
        
[SearchableProperty
        
[Required
        
[ResourcesDisplayName("GetFilesFromDatabase_FieldValue"
        
public object FieldValue { get; set; }
        
[Required
        
[SearchableProperty
        
[ResourcesDisplayName("DownloadFileCommand_ToParameterName"
        
public string ToParameterName { get; set; }

        
public override ExecuteResult Execute(IServerCommandExecuteContext dataContext)
        
{
            
IServerFileService serverFileService = dataContext.ServiceProvider.GetService(typeof(IServerFileService)) as IServerFileService;
            
object obj = dataContext.EvaluateFormula(this.FieldValue);
            
string text = (obj != null) ? obj.ToString() : null;
            
List<string> value = serverFileService.GetFilesFromAttachmentValue(text).ToList<string>();
            
dataContext.Parameters[this.ToParameterName = value;
            
return new ExecuteResult();
        
}

        
public IEnumerable<GenerateParam> GetGenerateParams()
        
{
            
yield return new GenerateListParam
            
{
               
ParamName = this.ToParameterName
            
};
            
yield break;
        
}

        
public override string ToString()
        
{
            
return Resources.GetFilesFromDatabase_DisplayName;
        
}
   
}
}

评分

参与人数 1金币 +5 收起 理由
David.Zhong + 5 感谢大佬的探索精神,但是要合理使用哟~

查看全部评分

回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-8-3 17:17:19
9#
可不兴硬撸代码哈~如果有接口可以实现的话,我肯定给大佬说了;如果有内部接口,我肯定也会提醒大佬谨慎使用的;这段代码中的方法是内部的一个辅助方法,实在无法保证,我都不敢和大佬说~
回复 使用道具 举报
phoben讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-8-3 17:26:13
10#
David.Zhong 发表于 2021-8-3 17:17
可不兴硬撸代码哈~如果有接口可以实现的话,我肯定给大佬说了;如果有内部接口,我肯定也会提醒大佬谨慎使 ...

应用名,能取吗?
能取的话,我拼接个默认路径也可以
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部