我构建了一个允许用户将文件上传到文件夹的Web应用程序。我得到以下例外。
System.UnauthorizedAccessException:访问路径' C:\ Users \ NAME \ Documents \ Uploads'被拒绝。在System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)'
我更改了此文件的共享权限,以允许每个人阅读和更改文件,然后我继续遇到异常。
我的代码在这里:
<%@ Page Language="C#" %>
<script runat="server">
void SubmitButton_Click(Object sender, EventArgs e) {
if (File1.PostedFile != null) {
try {
File1.PostedFile.SaveAs("C:\\Users\\NAME\\Documents\\Uploads");
Span1.InnerHtml = "Upload Successful!";
}
catch (Exception ex) {
Span1.InnerHtml = "Error saving file <b>C:\\" +
File1.Value + "</b><br>" + ex.ToString();
}
}
}
</script>
<html>
<head>
</head>
<body>
<form runat="server" enctype="multipart/form-data">
Select a file to upload:<br />
<input type="file" id="File1" runat="Server">
<p>
<input type="submit" id="Submit1" runat="Server"
value="Upload File" OnServerClick="SubmitButton_Click">
<p>
<span id="Span1" runat="Server" />
</form>
</span>
<p>
</body>
</html>
&#13;
答案 0 :(得分:0)
void SubmitButton_Click(Object sender, EventArgs e) {
if (File1.PostedFile != null) {
try {
File1.PostedFile.SaveAs(HttpContext.Current.Server.MapPath("/Uploads"));
Span1.InnerHtml = "Upload Successful!";
}
catch (Exception ex) {
Span1.InnerHtml = "Error saving file <b>C:\\" +
File1.Value + "</b><br>" + ex.ToString();
}
}
}
在SaveAs方法中,您需要告诉应用程序使用Server.MapPath方法来使用应用程序中的路径而不是绝对路径。
答案 1 :(得分:0)
检查上传文件夹的属性,它可能是只读复选框已选中。