问题标签 [httppostedfilebase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - MVC3 HttpPostedFileBase 第一次上传没有数据但随后做
问题的背景。
编辑 3 我可以验证这似乎在 Chrome 20 中再次起作用。谢谢!
TLDR 更新
编辑 2 经过进一步的研究,这似乎是 Chrome 19 中的一个错误。请参见此处:
没有什么比最新的错误更重要了!:-)
Firefox 最新版和 IE8/9 可以正常工作。Fiddler 日志显示了相同的行为,主要区别在于第二次 401 授权检查不会发送乱码的表单有效负载并且它按预期工作。
这听起来像是一个测试用例,并且正在修复中!因此,希望对于可能遇到此问题的任何人来说,这会有所帮助!
结束 TLDR
我有一个控制器操作,它只接收一个上传的文件,它是一个“事件”的 CSV 文件。在幕后,这个 CSV 被解析出来,变成事件对象,数据在数据库中同步。作为结果输出,系统会提示用户下载一个 Excel 电子表格,其中包含每行发生的所有错误。
这一切都在我的开发机器上本地运行良好。然而,一旦部署到 DEV 环境,我会得到不同的结果。第一次尝试上传文件导致流是,我在这里寻找的词是什么,不可读?它正确地报告了它的长度,但试图提取信息却一无所获。随后的读取确实有数据,并且一切都按预期工作。
我会给你相关的代码图片。首先,简化了生成的 HTML 表单:
非常直接:
控制器动作(原谅我的混乱,我已经研究了几个小时了):
目标是将文本阅读器或字符串阅读器传递给服务方法,因为在幕后这是使用需要这些类型的 CSV 处理实现。
任何想法为什么第一个请求失败但后续工作?我觉得我需要一双全新的眼睛,因为我的想法已经枯竭。
最后一点,IIS 7.5 是通过 IIS Express 本地和目标服务器上的目标。
谢谢
编辑赏金:
我在这里复制我的赏金消息和每个请求的 Fiddler 输出
我对这个问题添加了一些评论。该问题似乎与 NTLM 有关。我在 Fiddler 中看到的是带有有效表单数据的请求 1 上的 401 Unauthorized(我的理解是,在仅启用 Windows 身份验证的情况下,前两个 401 Unauthorized 请求是“正常的”;请验证?)。列出的请求 2 再次是具有相同表单数据的 401,除了上传的文件数据现在只是一堆框,完全相同大小的数据,只是不是确切的上传数据。请求 3 是包含乱码数据的 200 OK,这就是我的控制器操作得到的结果。如何让 NTLM 与文件上传配合得很好?
这是每个请求的 Fiddler 输出:
要求 1)
要求 2)
最后请求 3 即已处理的 HTTP 200 OK
编辑 2 经过进一步的研究,这似乎是 Chrome 19 中的一个错误。请参见此处:
没有什么比最新的错误更重要了!:-)
Firefox 最新版和 IE8/9 可以正常工作。Fiddler 日志显示了相同的行为,主要区别在于第二次 401 授权检查不会发送乱码的表单有效负载并且它按预期工作。
这听起来像是一个测试用例,并且正在修复中!因此,希望对于可能遇到此问题的任何人来说,这会有所帮助!
谢谢
c# - ASP MVC 文件上传 HttpPostedFileBase 为空
在我的控制器中,因为我希望能够填写有关视频的一些详细信息并实际上传它,所以 Video 类不需要实际的视频,因为它将被传递给另一个 Web 服务。
在我看来我有
}
当我提交表单时,VM 的 videoModel 部分已填写,但实际文件为空。有任何想法吗?
.net - .Net multipart/form-data form enctype 和 UTF-8 “特殊”字符 => �(MVC w/HttpPostedFileBase)
目标:
将带有 UTF-8 字符的 CSV 文件上传/发布到 MVC 操作,读取数据并将其粘贴到数据库表中。
问题:
只有纯文本字符才能通过。像 á 这样的 UTF-8 “特殊”字符在代码和数据库中没有正确通过,它们呈现为这个字符 => �。
更多的:
我确信这不是我的 C# 代码的问题,尽管我已经包含了下面的重要部分。
我认为问题在于上传的文件被编码为纯文本或“纯/文本”MIME 类型,但我可以通过将文件扩展名更改为 .html 来更改它
概括:
如何获得 enctype 属性设置为“multipart/form-data”的表单以正确解释已发布文件中的 UTF-8 字符?
研究:
从我的研究来看,这似乎是一个没有共同和明确解决方案的常见问题。
我也找到了比 .Net 更多的 java 和 PHP 解决方案。
csvFile 变量的类型为 HttpPostedFileBase
这是 MVC 动作签名
[HttpPost]
public ActionResult LoadFromCsv(HttpPostedFileBase csvFile)
我尝试过的事情:
1)
2)
3)
4)
5)
当文件具有 .txt 扩展名时,HttpPostedFileBase 的 ContentType 属性为“text/plain”
当我将文件扩展名从 .txt 更改为 .csv 时,HttpPostedFileBase 的 ContentType 属性为“application/vnd.ms-excel”
当我将文件扩展名更改为 .html 时,HttpPostedFileBase 的 ContentType 属性为“text/html”——我认为这会成为赢家,但事实并非如此。
在我的灵魂中,我必须相信这个问题有一个简单的解决方案。令我惊讶的是,我自己无法解决这个问题,在文件中上传 UTF-8 字符是一项常见任务!为什么我在这里失败了?!?!
也许我必须为网站调整 IIS 中的 mime 类型?
也许我需要不同的 DOCTYPE / html 标签 / meta 标签?
@加布-
这是我的帖子在提琴手中的样子。这真的很有趣,因为 � 很简单,就在 post 值中。
asp.net-mvc - MVC 4 - 部署到 IIS 7.5 时,上传在 IE 中不起作用
此问题仅在我将其部署到我们的实时服务器时发生,它在我的 Visual Studio Web 服务器的开发机器上运行良好,并且仅在 IE 中存在问题(8 和 9 两者)
使用此表格发布 jpeg...
使用这个 javascript...
对这个控制器...
在 IE 中导致 file.ContentLength = 0,但在 FF 和 Chrome 中工作正常,如果这有什么不同,机器就在我们的 Intranet 上。
非常感谢任何帮助
更新 1:
奇怪的是,问题似乎是间歇性的,周五我的同事不能上传任何东西,但我可以,今天早上是我不能,我的同事都可以使用 IE。
一切似乎都指向 IIS 配置问题?
更新 2:
好的,看来我的问题与过期的会话/安全性有关。我正在使用混合身份验证方法,它给我带来了问题。
主站点使用表单身份验证,但是我有另一个站点为我进行 Windows 身份验证并设置 cookie,禁用它为我解决了这个问题。
不知道为什么,但我认为这在另一个问题上会更好。
我将 smartcaveman 的答案标记为正确的答案,因为他的帖子让我得到了正确的答案/解释。
c# - 如何在asp net mvc中从c#代码发布文件?
我有一个控制器方法,它HttpPostedFileBase picture
作为参数。当然,它用于从表单加载图像。但现在我想使用该方法从另一种方法加载文件。我可以使用图像路径在代码中制作 HttpPostedFileBase 文件吗?或者可能是另一种解决方案是首选?
好的,代码:
真的,身体绝对不重要。当然我有类似的东西:
我想要类似的东西:
c# - MVC3如何检查HttpPostedFileBase是否是图像
我有一个这样的控制器:
如何确保 uploadFile 是图像(jpg、png 等)
我试过了
如果无法创建 bitmapImage,则会引发 ArgumentException。
有没有更好的方法,例如通过查看uploadFile.FileName?
c# - MVC 3 文件上传验证错误触发
我的 MVC 3 Web 应用程序中有一个文件上传功能,我正在尝试使用这些属性验证 FileSize 和 FileType:
HTML如下:
选择文件后一切正常。但是,如果没有选择文件,我仍然会触发 FileSize 或 FileType 验证并出现验证错误。由于我不希望在 POST 上需要 File,我该如何避免这种情况?
asp.net-mvc - 返回 HttpPostedFileBase 以查看验证错误
当我尝试将图像上传到我的 MVC 控制器操作并且出现验证错误时,我必须单击每个按钮并再次找到我的所有文件。
如果我的观点包括
和一个控制器动作,比如
文件可以很好地发布到服务器,但是如果出现模型验证错误,有没有办法返回模型和文件,这样用户就不必再次上传它们了?
httppostedfilebase - 在 SQL 中将 httppostedfilebase 保存为图像
我有一种情况,我在我的 MVC 代码中获取了一个 httppostedfilebase 类型的图像。我的 SQL 数据库中有一个相应的图像类型列。
我需要知道如何在我的数据库中将此 httppostedfilebase 类型转换/保存为图像。
asp.net-mvc - ASP.NET MVC HttpPostedFIleBase 为空
我@Html.BeginForm
认为允许用户上传图像并添加有关图像的一些详细信息。
这是视图:
在这个之前我有一个不同的@Html.BeginForm
权利,它是为了别的东西。
这是我的控制器:
当我在 中放置断点时SaveImage
,文件始终为空。我试图上传大小图像。
任何人都可以看到我要去哪里可怕的错误?