<form id= "uploadForm">
<p >指定文件名: <input type="text" name="filename" value= ""/></p >
<p >上传文件: <input type="file" name="file"/></ p>
<input type="button" value="上传" onclick="doUpload()" />
</form>
function doUpload() {
var formData = new FormData($( "#uploadForm" )[0]);
$.ajax({
url: 'http://localhost:8080/cfJAX_RS/rest/file/upload' ,
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
alert(returndata);
},
error: function (returndata) {
alert(returndata);
}
});
}
想做一个无刷新上传但出了这个问题。
你那个地址不允许post请求,自己检查服务器配置
http://www.cnblogs.com/pinocchioatbeijing/articles/2375139.html
可算是解决了
<body>
<form id="uploadForm" name="uploadForm" enctype="multipart/form-data" >
<input id="file" type="file" />
<button id="upload" onclick="doUpload()" type="button">upload</button>
</form>
</body>
<script type="text/javascript">
function doUpload() {
var formData = new FormData();
formData.append('file', $('#file')[0].files[0]);
$.ajax({
url: 'Ashx/uploadFile.ashx',
type: 'POST',
cache: false,
data: formData,
processData: false,
contentType: false
}).done(function (res) {
alert(res);
}).fail(function (res) {
alert(res);
})
}
</script>
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
HttpFileCollection files = context.Request.Files;
if (files.Count > 0)
{
foreach (string str in files)
{
HttpPostedFile file = files[str];
string path = System.AppDomain.CurrentDomain.BaseDirectory + "uploadFiles\\" + file.FileName;
file.SaveAs(path);
}
context.Response.Write("上传成功");
}
}
在form表单中var formData = new FormData($( "#uploadForm" )[0]);
我不知道为什么formData获取不到文件,通过id的方式的却可以
希望哪位知道的可以告诉下我
$('#file')[0].files[0].size可以获取你file的大小,b为单位
保存文件时saveas时请映射到具体磁盘路径