【发布时间】:2011-02-11 18:20:58
【问题描述】:
我正在尝试解决一个小问题。我主要使用客户端(JQuery/JavaScript)代码构建了一个完整的 Web ASP.NET 应用程序。我使用通用处理程序来做一些数据的延迟加载,以及自动完成等。
其中一个要求是一个页面需要能够上传文件,以及显示有关上传文件的元信息。
我想知道是否有办法完全用 JQuery/JavaScript 上传文件。我研究了很多插件,但它们都依赖于 php 后端。
我的想法是创建一个帖子:
$(function(){
$('#submit').live('click', function(event){
$.post('/SomeOtherHandler.ashx', //can be '/someotherpage.aspx'
{
filename: $('#fileUpload').val(),
timestamp: (new Date()).toString()
}, function(data){
//do something if the post is successful.
});
});
});
这行得通吗?我知道,如果您包含 json 对象 { filename: value, timestamp: value },它将显示在 HttpContext.Request.Params 集合中,我可以毫无问题地阅读它。
但问题是我不知道这将如何工作,因为 FileUpload html 控件仅将文件名存储在其值中。因此,我将使用文件名而不是字节数组向我的服务器发送一个字符串。
对此的任何想法将不胜感激!
【问题讨论】:
-
如果我错了,请纠正我,但每当使用
<input type="file".../>时,都会创建一种特殊类型的帖子:文件以及其他一些东西都提供了 mime 类型。无论您的<form action="".../>指向什么,该帖子都会发生。当您单击<input type="submit".../>时,表单的全部内容将通过 http POST 发送到服务器端代码,包括文件位。我不是要求从 JavaScript 中获取文件,而只是重新创建该 http POST,以便我的处理程序/页面可以从<input type="file".../>字段中获取数据。 -
javascript 无法发布具有文件输入类型的表单。它不会上传文件。
-
我也有类似的问题。多亏了 File 对象,实现 HTML5 拖放是小菜一碟。但是,我的 适用于尚不支持拖放的浏览器(基本上是 IE 和旧浏览器)。仍在寻找方法
标签: javascript jquery asp.net jquery-plugins file-upload