单击我的Import-Button执行以下JQuery代码:
if ($("#fileUpload").val()) {
$.ajax({
async: false,
url: "Handler/Handler.ashx?op=Import",
data: JSON.stringify(myData),
type: 'POST',
contentType: 'application/json; charset=utf-8'
});
myData
是一个JSON对象,包含文件路径和HTML元素的其他一些值。
达到此声明时......
using (var fs = new FileStream(filepath, FileMode.Open, FileAccess.ReadWrite))
......这是苍蝇的例外:
UnauthorizedAccessException - Access to the path XXX is denied.
我可以通过向IUSER提供完全控制权限来解决此问题。但是,这不是一个选项,因为我们的最终用户无法在每次上传文件时修改权限。还有其他方式不涉及任何最终用户输入吗?
答案 0 :(得分:0)
如果我理解正确,你可以在使用前给予飞行许可。
private bool GrantAccess(string filepath)
{
FileInfo fInfo = new FileInfo(filepath);
FileSecurity fSecurity = fInfo.GetAccessControl();
fSecurity.AddAccessRule(new FileSystemAccessRule("IUSER",
FileSystemRights.FullControl,
AccessControlType.Allow));
fInfo.SetAccessControl(fSecurity);
return true;
}
并在使用-block
之后private bool RemoveAccess(string filepath)
{
FileInfo fInfo = new FileInfo(filepath);
FileSecurity fSecurity = fInfo.GetAccessControl();
fSecurity.AddAccessRule(
new FileSystemAccessRule("IUSER",
FileSystemRights.FullControl,
AccessControlType.Deny));
fInfo.SetAccessControl(fSecurity);
return true;
}
希望它有所帮助。
不要忘记包含using System.IO;