我有一个使用ajax进行表单提交的asp.net表单,当我单击上传文件的按钮时,将显示jQuery错误消息中的警告消息,但是当我检查服务器上的文件时,文件正在上传没有问题。
注意:如果我提交的文件很多且文件很大,则不会提交所有文件。
客户页面:
Click
$("#btnUpload").click(function (event) {
alert("Script Started")
var files = $("#FileUpload1")[0].files;
if (files.length > 0) {
var formData = new FormData();
for (var i = 0; i < files.length; i++) {
formData.append(files[i].name, files[i]);
}
alert("Number of files: " + files.length)
formData.append("Name", "John");
alert("Before ajax")
$.ajax({
url: 'NewForm_Backend_test.aspx',
timeout: 30000,
data: formData,
method: 'post',
contentType: false,
processData: false,
success: function (msg) {
alert("Good")
},
error: function (err) {
alert("Bad")
}
});
}
});
服务器端页面:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Configuration;
using System.Text.RegularExpressions;
using System.Globalization;
namespace eformsmanagementtool
{
public partial class NewForm_Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(20000);
string data = Request.Form["Name"];
Response.Write("You've submitted: " + data);
HttpFileCollection files = HttpContext.Current.Request.Files;
for (int i = 0; i < files.Count; i++)
{
HttpPostedFile file = files[i];
string fileName = Server.MapPath("~/Documents/" + Path.GetFileName(file.FileName));
if (File.Exists(fileName))
{
File.Delete(fileName);
file.SaveAs(fileName);
Response.StatusCode = 200;
}
else
{
file.SaveAs(fileName);
Response.StatusCode = 200;
}
}
Response.Headers.Add("Content-type", "text/json");
Response.Headers.Add("Content-type", "application/json");
}
}
}