asp.net+ajaxfileupload.js 實現(xiàn)文件異步上傳代碼分享

字號:


    由于代碼很簡單,這里就閑話不多說了,直接上代碼,小伙伴們自己研讀代碼就明白了。
    前臺代碼:
    代碼如下:
    /*修改頭像*/
    //上傳
    function _sc() {
    $(".ckfile").html("").css("color", "#535353");
    $("#_userImgPath").val("");
    var str = $("#file").val();
    if ($.trim(str) == "") {
    $(".ckfile").html("請選擇文件。").css("color", "red");
    return false;
    }
    else {
    var postfix = str.substring(str.lastIndexOf(".") + 1).toUpperCase();
    if (postfix == "JPG" || postfix == "JPEG" || postfix == "PNG" || postfix == "GIF" || postfix == "BMP") {
    $('#showimg').attr('src', 'Images/loading.gif').attr("title", "上傳中,請稍后…");
    var path = "Upload/UserImg";
    $.ajaxFileUpload({
    url: '/Upload.aspx?path=Upload|UserImg&shape=100*100',
    secureuri: false,
    fileElementId: 'file',
    dataType: 'text',
    success: function (msg) {
    if (msg.lastIndexOf(path) == -1) {
    $(".ckfile").html(msg).css("color", "red");
    }
    else {
    $('#showimg').attr('src', msg).attr("title", "我的頭像");
    $("#_userImgPath").val(msg);
    }
    }
    });
    } else {
    $(".ckfile").html("文件格式錯誤。").css("color", "red");
    return false;
    }
    }
    }
    后臺代碼:
    代碼如下:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using SS.Upload;
    using WFC.Fenxiao;
    namespace wanfangcheng
    {
    public partial class Upload : BasePage
    {
    //文件大小 1024 kb
    private long size = 1024;
    //文件類型
    private string type = ".jpg|.jpeg|.png|.gif|.bmp";
    //保存名稱
    string name = "";
    //保存路徑
    private string path = @"Upload/UserImg";
    //保存大小
    private string shape = "100*100";
    protected void Page_Load(object sender, EventArgs e)
    {
    HttpFileCollection files = Request.Files;
    if (files != null && files.Count > 0)
    {
    name = BaseRole.Instance.UserId.ToString();
    if (Request.QueryString["size"] != null)
    {
    size = Convert.ToInt32(Request.QueryString["size"]);
    }
    if (Request.QueryString["path"] != null)
    {
    path = Request.QueryString["path"].ToString().Trim().Replace('|', '/');
    }
    if (Request.QueryString["name"] != null)
    {
    name = Request.QueryString["name"].ToString().Trim();
    }
    if (Request.QueryString["shape"] != null)
    {
    shape = Request.QueryString["shape"].ToString().Trim();
    }
    uploadMethod(files);
    }
    }
    /// <summary>
    /// 上傳圖片
    /// </summary>
    /// <param name="hc"></param>
    public void uploadMethod(HttpFileCollection hc)
    {
    HttpPostedFile _file = hc[0];
    //文件大小
    long _size = _file.ContentLength;
    if (_size <= 0)
    {
    Response.Write("文件錯誤。");
    Response.End();
    return;
    }
    if (size * 1024 < _size)
    {
    Response.Write("文件過大,最大限制為" + size + "KB。");
    Response.End();
    return;
    }
    //文件名
    string _name = _file.FileName;
    //文件格式
    string _tp = System.IO.Path.GetExtension(_name).ToLower();
    if (type.IndexOf(_tp) == -1)
    {
    Response.Write("文件格式錯誤。");
    Response.End();
    return;
    }
    //保存路徑
    string _path = HttpContext.Current.Server.MapPath(path) + @"/" + name + _tp;
    try
    {
    int w = Convert.ToInt32(shape.Split('*')[0]);
    int h = Convert.ToInt32(shape.Split('*')[1]);
    ImageHelper.CutForCustom(_file, _path, w, h, 50);
    Response.Write(path + @"/" + name + _tp);
    }
    catch (Exception)
    {
    Response.Write("哎呦,出錯了。");
    Response.End();
    }
    }
    }
    }
    是不是很實用,也很簡單易懂呢,以上是自己項目中使用的代碼,小伙伴們?nèi)绻l(fā)現(xiàn)有問題的地方,還請告之。謝謝