1. 程式人生 > >快速上傳檔案到資料夾.感覺方便好用.

快速上傳檔案到資料夾.感覺方便好用.

1.介面HTML程式碼.enctype="multipart/form-data"  不可缺.

<form id="uploadFileForm" method="post" enctype="multipart/form-data">
<div>
<input type="hidden" id="uploadFileVersion" name="version" />
<input type="hidden" id="uploadFileYear" name="year" />
<input type="file" id="File1" name="fileUpload" multiple>
<div><label id="uploadFileName" style="color:red;"></label></div>
</div>
</form>

2.提交真個From表單.其它引數.可以只能採用URL.傳引數的方式. async: false,cache: false,contentType: false,processData: false,  必須設定這幾個屬性.不然存在相容性問題.

var formData = new FormData($("#uploadFileForm")[0]);
var prompt = $.initMask({ content: "正在提交,請稍候..." });
//點選事件
$.ajax({
url: "/PriceSetting/PriceSettingSubmit?company_name=" + company_name + "&pj_name=" + pj_name + "&stage_id=" + stage_id + "&stage_name=" + stage_name + "&desc=" + desc + "&gridjson=" + JSON.stringify(list) + "",
data: formData,
type: 'post',
dataType: 'json',
async: false,
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
//顯示等待
prompt.show();
},
success: function (result) {
alert(result.Message);
//提示後關閉等待
prompt.close();
},
});

3.後端程式碼.

public ActionResult PriceAdjustmentSubmit()
{
//獲取URL引數
var company_name = Request["company_name"];
var pj_name = Request["pj_name"];
var stage_id = Request["stage_id"];
var stage_name = Request["stage_name"];
var desc = Request["desc"];
var gridjson = Request["gridjson"];
bool isreport = true;

//儲存附件到伺服器
//定義檔案存放的目標路徑
string proDir = "/Content/PriceSettingFiles";
string targetDir = System.Web.HttpContext.Current.Server.MapPath("~" + proDir);
//建立目標路徑
if (!Directory.Exists(targetDir))
{
Directory.CreateDirectory(targetDir);
}
//獲取客戶端上傳的檔案集合
HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
string filePath = string.Empty;
string filename = string.Empty;
for (int i = 0; i < files.Count; i++)
{
HttpPostedFile file = files[i];

if (file.ContentLength > 1024 * 1024 * 10)
{
ret = new
{
IsSuccess = false,
Message = "檔案" + file.FileName + "不能超過10M!"
};
return Json(ret);
}
//取得檔案的副檔名,並轉換成小寫
string fileExtension = System.IO.Path.GetExtension(file.FileName).ToLower();

if (!string.IsNullOrEmpty(fileExtension))
{
filename = "樓棟價格調整附件" + file.FileName;
if (!fileExtension.Equals(".docx") && !fileExtension.Equals(".xlsx") && !fileExtension.Equals(".pdf"))//校驗檔案型別
{
ret = new
{
IsSuccess = false,
Message = "上傳檔案格式不正確"
};
return Json(ret);
}
}
//組合成檔案的完整路徑
string path = Path.Combine(targetDir, timeStamp + Path.GetFileName(file.FileName));
filePath = proDir + "/" + timeStamp + file.FileName;
//儲存上傳的檔案到指定路徑中
if (System.IO.File.Exists(path))
{
System.IO.File.Delete(path);
}
file.SaveAs(path);//儲存部分
}

 

 

}