我在MVC中使用<input type="file" />
作为文件浏览器对话框。我实际上并不想上传文件,我用它来选择共享驱动器上的模板。我只想在我的action方法中获取完整的文件路径。然后,服务器将处理该文件并强制下载到客户端。我已经掌握了HttpPostedFileBase
对象,但是我没有看到filepath属性。这可能吗?或者如果没有,还有哪些其他选择?
答案 0 :(得分:1)
您永远无法从文件上传框中获取文件的完整路径,因为这是一个安全问题。没有浏览器会传递完整路径,只传递文件名。
此外,文件上传框将始终上传文件。不幸的是,就像完整路径的安全问题一样,没有办法显示文件对话框并让用户选择文件而不启动上传。
答案 1 :(得分:0)
您可以尝试在输入上添加onchange javascript事件并将值写入隐藏字段。然后只需读入隐藏字段中的值。它将包含输入字段的文本框部分中的所有内容。
<input type="file" name="fileUploader" id="fileUploader" onchange="filePath.value = fileUploader.value;" />
<input type="hidden" name="filePath" id="filePath" />
我没有用MVC看过它,但是在ASP.Net中我能够在使用输入字段后从后面的代码中读取该值。
希望这有帮助。