大家好我为我的MVC项目下载了一个文件管理器 http://www.roxyfileman.com 。所以我添加到我的项目中,每件事情都运行良好,但每个人都可以使用这个产品我的意思是每个人都可以输入网址并将文件上传到我的主机!!!!这个 filemanager 有一个 json 配置文件,你可以在这里看到:
{
"FILES_ROOT": "fileman/Uploads",
"SESSION_PATH_KEY": "FileManager",
"THUMBS_VIEW_WIDTH": "140",
"THUMBS_VIEW_HEIGHT": "120",
"PREVIEW_THUMB_WIDTH":"300",
"PREVIEW_THUMB_HEIGHT":"200",
"MAX_IMAGE_WIDTH": "0",
"MAX_IMAGE_HEIGHT": "0",
"INTEGRATION": "tinymce3",
"DIRLIST": "asp_net/main.ashx?a=DIRLIST",
"CREATEDIR": "asp_net/main.ashx?a=CREATEDIR",
"DELETEDIR": "asp_net/main.ashx?a=DELETEDIR",
"MOVEDIR": "asp_net/main.ashx?a=MOVEDIR",
"COPYDIR": "asp_net/main.ashx?a=COPYDIR",
"RENAMEDIR": "asp_net/main.ashx?a=RENAMEDIR",
"FILESLIST": "asp_net/main.ashx?a=FILESLIST",
"UPLOAD": "asp_net/main.ashx?a=UPLOAD",
"DOWNLOAD": "asp_net/main.ashx?a=DOWNLOAD",
"DOWNLOADDIR": "asp_net/main.ashx?a=DOWNLOADDIR",
"DOWNLOADDIR": "asp_net/main.ashx?a=DOWNLOADDIR",
"DELETEFILE": "asp_net/main.ashx?a=DELETEFILE",
"MOVEFILE": "asp_net/main.ashx?a=MOVEFILE",
"COPYFILE": "asp_net/main.ashx?a=COPYFILE",
"RENAMEFILE": "asp_net/main.ashx?a=RENAMEFILE",
"GENERATETHUMB": "asp_net/main.ashx?a=GENERATETHUMB",
"DEFAULTVIEW": "list",
"FORBIDDEN_UPLOADS": "zip js jsp jsb mhtml mht xhtml xht php phtml php3 php4 php5 phps shtml jhtml pl sh py cgi exe scr dll msi vbs bat com pif cmd vxd cpl htpasswd htaccess",
"ALLOWED_UPLOADS": "jpg",
"FILEPERMISSIONS": "0644",
"DIRPERMISSIONS": "0755",
"LANG": "auto",
"DATEFORMAT": "dd/MM/yyyy HH:mm"
}
因为你可以看到第二部分是会话密钥,所以当用户登录时我会在我的项目中添加一个会话,如你所见:
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
{
Session.Add("FileManager",true);
return RedirectToLocal(returnUrl);
}
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}
所以我添加了一个会话 FileManager ,并添加到 json配置文件。但它不起作用。
答案 0 :(得分:2)
这就是我为解决我遇到同样问题的程序所做的工作。
在fileman ast_net文件夹中修改main.ashx从第201行开始:
自:
protected string GetFilesRoot(){
string ret = GetSetting("FILES_ROOT");
if (_context.Session["SESSION_PATH_KEY"] != null)
ret = (string)_context.Session[GetSetting("SESSION_PATH_KEY")];
if(ret == "")
ret = _context.Server.MapPath("../Uploads");
else
ret = FixPath(ret);
return ret;
}
要:
protected string GetFilesRoot(){
string ret = GetSetting("FILES_ROOT");
if (GetSetting("SESSION_PATH_KEY") != null)
ret = (string)_context.Session[GetSetting("SESSION_PATH_KEY")];
if(ret == "")
ret = _context.Server.MapPath("../Uploads");
else
ret = FixPath(ret);
return ret;
}
在conf.json中的我将FILES_ROOT变量留空并设置了“SESSION_PATH_KEY”:“SESSIONFILEPATH”
在我设置会话的登录脚本中: 会话[“SESSIONFILEPATH”] =“〜/ assests / 1 /”;
从这里你应该能够动态地改变我正在做的文件夹位置但是对于这个例子我只是保持原样。
我没有MVC,但这应该是相同的。
我希望它有所帮助,如果它确实请投票=)
干杯!