JQuery input file 上傳圖片


表單元素file設置隱藏,通過其他元素打開:

.imgfile為input file

 $(".ul").click(function () {return $(".imgfile").click();
    });

JS部分:

$(".imgfile").change(function () {
        var file = $(".imgfile").get(0).files[0];
        var reader = new FileReader();
        reader.readAsDataURL(file);
        reader.onloadend = function () {
            $("#Image1").attr("src", reader.result);
        }
    });

$("#register2").click(function () {var IMG_BASE = $("#Image1").attr("src"); //要上傳的圖片的base64編碼
        var IMG_ROUTE = $(".imgfile").val();//獲取上傳圖片路徑,為獲取圖片類型使用
        var IMG_ENDFOUR = IMG_ROUTE.substr(IMG_ROUTE.length - 4, 4);//截取路徑后四位,判斷圖片類型
        var IMG_FOMATE = "jpeg"; //圖片類型***
        if (IMG_ENDFOUR.trim() == ".jpg")
            IMG_FOMATE = "jpg";
        else if (IMG_ENDFOUR.trim() == ".png")
            IMG_FOMATE = "png";
        else if (IMG_ENDFOUR.trim() == ".bmp")
            IMG_FOMATE = "bmp";
        //圖片正式開始上傳
        $.ajax({
            type: "post",
            url: "server/head.ashx",
            data: { 'imgBase': IMG_BASE, 'imgFormat': IMG_FOMATE },
            dataType: "text",
            success: function (data) {
                //data為返回的圖片路徑
        });
    });

一般處理程序部分:

using System.IO; //需要這三個命名空間
using System.Drawing;//***
using System.Drawing.Imaging;//***


        string imgBase = context.Request["imgBase"];//傳遞過來的base64編碼
        string imgFomate = context.Request["imgFormat"];//傳遞過來的圖片格式
        string end = "1";
        string imgReadyBase = imgBase.Substring(imgBase.IndexOf("4") + 2);//截取base64編碼無用開頭
        byte[] bytes = System.Convert.FromBase64String(imgReadyBase);//base64轉為byte數組
        MemoryStream ms = new MemoryStream(bytes);//創建內存流,將圖片編碼導入
        Image img = Image.FromStream(ms);//將流中的圖片轉換為Image圖片對象
                                         //利用時間種子解決偽隨機數短時間重復問題
        Random ran = new Random((int)DateTime.Now.Ticks);
        //文件保存位置及命名,精確到毫秒並附帶一組隨機數,防止文件重名,數據庫保存路徑為此變量
        string s = ran.Next().ToString();
        string serverPath = "../head/" + DateTime.Now.ToString("yyyyMMddhhmmssms") +s+ "." + imgFomate;
        //路徑映射為絕對路徑
        string path = context.Server.MapPath(serverPath);
        ImageFormat imgfor = ImageFormat.Jpeg;//設置圖片格式
        if (imgFomate == "png")  imgfor = ImageFormat.Png;
        try
        {
            img.Save(path, imgfor);//圖片保存
        }
        catch { end = "0"; }
        end = "head/" + DateTime.Now.ToString("yyyyMMddhhmmssms") +s+ "." + imgFomate;
        context.Response.Write(end);
        context.Response.End();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM