自實現input上傳指定文件到服務器


遇到問題,解決問題,記錄問題,成長就是一步一步走出來的。

一、添加 input 標簽

我的工作中遇到了,需要上傳pdf文件到服務器的需求,而且只能上傳pdf文件,accept指定了 pdf 類型。

<input type="file" id="testFile" name="testFile" accept="application/pdf">

二、Jquery實現上傳

文件上傳一般要基於表單上傳,所以這里 new 了一個 FormData() 實例,用來將選中的文件傳輸到服務端。

function fileUpload() {
        var formData = new FormData();
        var fileName = $('#testFile').val();
        var files = $('#testFile')[0].files[0];
        formData.append("File", files);
        formData.append("FileName", fileName);
        // 以及一些其它要傳入的參數
        // formData.append(key, value);

        $.ajax({
            url: "后台上傳地址",
            type: 'POST',
            data: formData,
            dataType:'json',
            processData: false,// ⑧告訴jQuery不要去處理發送的數據
            contentType: false, // ⑨告訴jQuery不要去設置Content-Type請求頭
            success: function (res) {
                console.log(res)
            }
        });
    }

三、后台接收

后台接收一般要借助 HttpContext 上下文來獲取文件

public void UploadFile(){
    //獲取文件
    var file = HttpContext.Request.Files["File"];
    if (file == null)
    {
        //做出文件不能為空返回
        //...
        return;
    }

    //獲取參數 文件名稱
    var fileName = HttpContext.Request["FileName"];
    //獲取文件流
    var stream = file.InputStream;

    //然后就可以對該文件流只能保存或者其它操作
}

記錄,只為自己以后遇到同樣的問題,而不再花費不必要的時間


免責聲明!

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



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