首页 >web前端 >js教程 >如何使用 JavaScript 将文件传输到服务器?

如何使用 JavaScript 将文件传输到服务器?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-15 07:51:02496浏览

How to Transmit Files to a Server Using JavaScript?

使用 JavaScript 上传文件

当网页允许用户使用文件输入元素选择文件时,可以从以下位置检索所选文件的名称document.getElementById("图像文件").value.但是如何将此文件传输到服务器?

对于文件上传,JavaScript 提供了多种方法。一种选择是使用 Fetch API:

纯 JS(Fetch)

let photo = document.getElementById("image-file").files[0];
let formData = new FormData();
     
formData.append("photo", photo);
fetch('/upload/image', {method: "POST", body: formData});

此方法创建一个 formData 对象,将选定的文件附加到它,并使用fetch 将 formData 发送到指定 URL。

文件上传状态通知

要监听文件上传完成,可以使用 XMLHttpRequest 对象创建 FormData 对象并设置其 onreadystatechange 事件监听器。当文件上传完成时,事件的readyState属性将为4。

// Register file input
const fileInput = document.getElementById('image-file');

// Add event listener for onreadystatechange
fileInput.addEventListener('change', (e) => {
  const files = e.target.files;
  
  if (files.length > 0) {
    // Create a FormData object
    const formData = new FormData();
    
    // Append selected files to FormData object
    for (const file of files) {
      formData.append('files', file);
    }

    // Create an XMLHttpRequest object
    const xhr = new XMLHttpRequest();

    // Open a POST request to the server
    xhr.open('POST', '/upload/image');

    // Set the onreadystatechange event listener
    xhr.onreadystatechange = () => {
      if (xhr.readyState === 4) {
        if (xhr.status === 200) {
          // File upload completed successfully
          console.log('File uploaded successfully!');
        } else {
          // File upload failed
          console.error('File upload failed!');
        }
      }
    };

    // Send the FormData object
    xhr.send(formData);
  }
});

以上是如何使用 JavaScript 将文件传输到服务器?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn