gpt4 book ai didi

c# - FileUpload.PostedFile 始终为空,除非页面至少回发一次?

转载 作者:行者123 更新时间:2023-11-30 13:27:21 24 4
gpt4 key购买 nike

似乎是一个显而易见的问题,但我仍然感到困惑。我在页面上有一个 asp FileUpload 控件,它也恰好位于 UpdatePanel 内。我将 UpdatePanel 设置为 UpdateMode="Conditional"。我还在触发器部分设置了一个回发触发器(不是异步回发触发器)。单击按钮时,应该将文件上传到数据库,在我的数据层中处理。第一次尝试时,它将失败,因为 PostedFile 为空,但您会看到该页面执行回发(本质上会清除/重置下载控件)。当我再次尝试上传文件时,一切正常。我的第一个想法是因为它需要回发才能真正获取字节,对吗?好吧,所以根据这个逻辑,我想如果我试图上传一个不同的文件,那么它实际上会上传以前的文件。它没;它上传了新文件。这就是我感到困惑的地方。

上传方法如下:

protected void ReplaceDoc()
{
var data = ulReplaceDoc.FileBytes;
var fileName = ulReplaceDoc.PostedFile.FileName;
if (MocApi.ReplaceWorkingDocument(_request.MocRequestID, _currentUser, fileName, data))
{
//refresh files
ShowFiles();
}
}

非常简单。它应该抓取文件,上传它(在数据库上运行更新查询以更改文件),然后刷新数据源以显示新文件。

所以我的问题是:为什么它只在第一次尝试时失败?另外,实现这种效果的更好方法是什么?

最佳答案

在页面加载事件中,添加如下代码,

Page.Form.Attributes.Add("enctype", "multipart/form-data");

它会起作用的。第一次 PostBack 期间缺少 enctype 属性。

关于c# - FileUpload.PostedFile 始终为空,除非页面至少回发一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12185656/

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