gpt4 book ai didi

c# - FileUpload.SaveAs 在删除 AD 后保存空的损坏文件

转载 作者:太空宇宙 更新时间:2023-11-03 14:52:04 26 4
gpt4 key购买 nike

我有一个 asp.net(c# 后端)应用程序,它使用 FileUpload.SaveAs 通过 Web 表单将文件上传到 Web 服务器上的特定文件夹。这一直很成功,直到最近 Active Directory 被关闭。从那时起,SaveAs 为大小为零的已损坏文件创建一个空壳。我重新安装了 AD,但没有解决问题。运行该应用程序的应用程序池对该文件夹具有完全访问权限,因此这不应该是权限问题,而且正如我所提到的,这已经运行了很长一段时间。我有一个 try catch around the SaveAs,但它没有进入 catch,所以没有消息,它认为它有效。我查看了事件查看器,但什么也没有。通过 VisualStudio(空文件)进行测试时,我得到了相同的结果,那么有没有办法获得某种消息,指示文件无法正确上传的原因?这是生产问题,请帮忙!!

前端代码:

<asp:linkbutton id="ButtonAtt" text="UpLoad" onclick="ButtonAtt_Click" runat="server"/>
<asp:FileUpload ID="FileUploadAtt" runat="server" BackColor="White" Width="300px"/>

后端代码:

protected void ButtonAtt_Click(object sender, EventArgs e)
{
if (FileUploadAtt.HasFile)
{
//append id to filename
string sFilename = DDFindEmp.SelectedValue.ToString() + "-" + FileUploadAtt.FileName;
string sPath = Server.MapPath("/Training");
// upload file into filestore directory
try
{
FileUploadAtt.SaveAs(sPath + sFilename);
}
catch (Exception ex)
{
LabelAtt.Text = "Error uploading file: " + ex.Message.ToString();
}
}
else
{
LabelAtt.Text = "Please select a file for upload.";
}
}

最佳答案

如果你正在使用,

   while ((bytesRead = context.Request.InputStream.Read(bytes, 0, bytes.Length)) > 0)
{
fs.Write(bytes, 0, bytesRead);
}

然后改成,

while ((bytesRead = context.Request.Files[0].InputStream.Read(bytes, 0, bytes.Length)) > 0)

context.Request.Files[0].SaveAs(...);

关于c# - FileUpload.SaveAs 在删除 AD 后保存空的损坏文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51370983/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com