有時,開發人員可能需要在不使用 JavaScript 表單的情況下上傳檔案。通常,我們會建立一個表單來從使用者那裡獲取資料和文件,但在本教程中,我們將學習在沒有表單的情況下從使用者那裡獲取文件並將其發送到後端。
FormData 物件允許我們將表單資料儲存在鍵值對中。我們需要使用建構子來初始化變數。我們可以允許使用者使用 HTML 輸入上傳檔案並將該檔案儲存在表單資料中。之後我們就可以將表單資料傳送到後端了。
使用者可以按照下面的語法使用FormData()物件和ajax請求來上傳文件,而無需使用表單。
form_data.append("file", uploadedFile); $.ajax({ url: "URL", method: "POST", data: form_data, });
在上面的語法中,我們使用了append()方法在表單資料物件中新增一個檔案。此外,我們使用 ajax() 將資料傳送到 API。
在下面的範例中,我們使用 標籤在 HTML 中建立了檔案輸入。在 JavaScript 中,每當使用者上傳檔案時,我們都會存取它並將其新增至 form_data 物件中。
之後,我們使用ajax透過POST請求將檔案傳送到API。
<html> <head> <script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script> </head> <body> <h3>Using the <i>FormData object and ajax request</i> to upload a file without using the form data in JavaScript</h3> <input type = "file" name = "file" id = "file_input" /> <div id = "content"> </div> <script> $(document).on('change', '#file_input', function () { let uploadedFile = document.getElementById('file_input').files[0]; var form_data = new FormData(); form_data.append("file", uploadedFile); $.ajax({ url: "URL", method: "POST", data: form_data, }); }); </script> </body> </html>
jQuery 包含簡單的上傳插件,我們可以使用它來將檔案傳送到 API。我們需要將簡單上傳外掛程式的CDN加入到
部分才能使用。如果開發人員正在使用該應用程序,他們可以使用 NPM 命令來安裝該套件。使用者應依照以下語法使用 jQuery 簡單上傳外掛程式使用 JavaScript 上傳無表單檔案。
$(this).simpleUpload("URL", { start: function (file) { //upload started }, });
在上面的語法中,我們呼叫了簡單上傳外掛程式的 simpleUpload() 函數來上傳檔案。
在下面的範例中,我們在
部分中新增了 simpleUpload.min.js 檔案的路徑。我們在文件輸入上新增了「更改」事件。在回調函數中,我們以檔案輸入作為參考來呼叫 simpleUpload() 函數。我們將該物件作為 simpleUpload() 函數的第二個參數傳遞,並將鍵和回調函數作為值。<html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script> <script src= "https://cdn.jsdelivr.net/npm/jquery-simpleupload@1.1.0/simpleUpload.min.js"> </script> </head> <body> <h3>Using the <i>jQuery simple upload</i> plugin to upload the file without using the form</h3> <input type = "file" name = "file" id = "file_input"> <div id = "content"> </div> <script> $('#file_input').change(function () { $(this).simpleUpload("abcd.php", { start: function (file) { //upload started content.innerHTML = "upload started"; }, }); }); </script> </body> </html>
使用者學習了兩種不同的方法來上傳文件,而不使用 JavaScript 中的表單。我們在第一種方法中使用了 FormData 物件和 ajax() 方法。在第二種方法中,我們使用了Jquery的簡單上傳外掛。
以上是如何使用 JavaScript 上傳沒有表單的檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!