1. 程式人生 > 其它 >用jQuery實現檔案上傳的方法

用jQuery實現檔案上傳的方法

1、利用FormData實現檔案上傳

<input type="file" id="avatar" name="avatar">
<button type="button">儲存</button>
('button').click(function(){
 var files = $('#avatar').prop('files'); //多個
 //或者
 var files = $('#avatar')[0].files[0] //單個
 
 var data = new FormData();
 data.append('avatar', files[0]);
 
 $.ajax({
  url: 
'/api/upload', type: 'POST', data: data, cache: false, processData: false, contentType: false }); });

2、一般處理程式上傳檔案

using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Web;
using Newtonsoft.Json;

namespace CCOA.App.common.api
{
    
/// <summary> /// CommUploadFile 的摘要說明 /// </summary> public class CommUploadFile : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; try { HttpPostedFile file = context.Request.Files["
file1"]; //是否上傳檔案 if (file.ContentLength <= 0) //檔案大小 { //請選擇要上傳的檔案 context.Response.Write(""); return; } //上傳檔案大小檢測 if (file.ContentLength > 1024 * 1024*5) { //上傳檔案大小不能超過5M context.Response.Write(""); return; } //上傳檔案字尾名檢測 string filename = file.FileName; //檔案絕對地址 string suffix = Path.GetExtension(filename); //擷取字尾 //if (suffix != ".jpg" & suffix != ".jpeg") //{ // context.Response.Write("只允許上傳jpg檔案"); // return; //} #region 儲存檔案 //重新命名:GUID(全球唯一識別符號)推薦!!! filename = string.Format("{0}{1}", Guid.NewGuid().ToString("N"), suffix); //建立目錄 string dirFullPath = context.Server.MapPath("~/UploadFile/"); //如果資料夾不存在,則先建立資料夾 if (!Directory.Exists(dirFullPath)) { Directory.CreateDirectory(dirFullPath); } //將兩個字元組合成一個路徑 string fileFullPath = Path.Combine(dirFullPath, filename); //儲存檔案 file.SaveAs(fileFullPath); string clientFilePath = "/CCOA/UploadFile/" + filename; context.Response.Write(clientFilePath); } catch (Exception ex) { context.Response.Write(""); } #endregion } public bool IsReusable { get { return false; } } } }