当前位置: 首页 > 知识库问答 >
问题:

使用JS中的formdata和fetchAPI将上传到表单中的图像发送到服务器

章心水
2023-03-14

我试图从单个表单中提取图像和文本数据。我尝试使用formdata.get(图像)来获取用户选择的图像,但它不起作用,因为我在服务器上收到了一个未定义的值。我想知道使用formdata或任何其他方法获取用户在表单中选择的图像的适当方法,谢谢。

形式

 <form id = "register" class = "edit-note" enctype = "multipart/form-data">
                <div>
                    <label>Heading:</label>
                    <input type = "text" name = "heading" placeholder = "<%= Note[0].heading %>" id = "heading">
                </div>
                <div>
                    <label>Small Text:</label>  
                    <input type = "text" name = "stext" placeholder = "<%= Note[0].smallText %>" id = "stext">
                </div>

                <div>
                    <label>Featured Image:</label>
                    <img src = "<%= Note[0].image %>" height = "110px" width = "132px">
                    <input type = "file" name = "image" id = "fimage">
                </div>
                <div>
                    <label>Background Image:</label>
                    <img src = "<%= Note[0].background %>" height = "110px" width = "132px">
                    <input type = "file" name = "bimage" id = "bimage">
                </div>
    
                <div>
                    <label>Content:</label> 
                    <textarea name = "content" placeholder = "<%= Note[0].content %>" id = "content"></textarea>
                </div>

                <input type = "submit" name = "register" value = "Save Changes">
            </form>

FetchAPI

const noteForm = document.querySelector('.edit-note');

noteForm.addEventListener('submit', function(e) {
    e.preventDefault();
    let url = "";

    const formData = new FormData(this);

    fetch( '/images', {
        method: 'POST',
        body: formData.get('image')
    }).then(response => {
        response.json();
    }).then(URL => {
        //console.log(URL);
        url = URL;

我排除了FetchAPI中与问题无关的部分。

共有1个答案

于鹏
2023-03-14

如果您想使用XMLHttpRequest上传文件,那么您必须使用FormData,您正在这样做,但方式不对。

第一步:创建一个FormData实例

let formData = new FormData();

第二步:在其中添加数据

formData.append('file_to_upload', fileField.files[0]);  // Here fileField is the input file reference

第三步:通过XMLHttpRequest发送formData,在formData添加文件名时,您将获得文件名,在上述情况下,文件名为-file\u to\u upload

 类似资料:
  • 问题内容: 我要上传图像并将其保存在服务器中。我上传了图像并获得了预览,但是我被困在将图像发送到服务器上。我想使用角度服务将此图像发送到服务器。 这是HTML代码 这是指令 问题答案: 假设您在后端中期望Multipart,这是一段对我有用的代码。 这是一个jsfiddle。 请注意 以下部分: 是一些Angular魔术,为了使$ http解析FormData并找到正确的内容类型,等等。

  • 试图通过改装将表单数据发送到服务器,但无法向服务器请求。我想用他们的数据发布一个图像数组。 我尝试了许多解决方案,但无法发布包含其数据的图像阵列。当我从addFormDataPart中删除provider\u文档时,效果很好。 如何发送array,它在上运行良好。 请求Api

  • 问题内容: 我想随请求一起发送图像作为参数。我使用下面的代码调用POST请求,但是我不知道如何将图像追加到正文中。 我通过图像选择器获取图像,如下所示: 我的要求如下 我是Swift的新手。我已经通过multipart / form-data看到了这一点,但无法自己实现。我不想将其编码为基本64格式。请帮助我。 问题答案: 我使用以下结构发送图像: 然后在函数中创建如下主体:

  • 我必须向服务器发送一个映像(我认为最好的选择是使用HttpURLConnection)并从它接收一个字符串答案。在我读过的不同的文档和web站点中,我研究了这样做的最佳方法是使用多伙伴关系。 1_做它是最好的解决方案吗? 2_我有一个错误,说Android Studio无法解析符号'multipartentity'。我读到,要解决它,我必须下载外部库。哪些是它们,我如何下载它们? 3_为此,我想在

  • 问题内容: 我喜欢在PHP中使用Codeigniter Framework和JQuery AJAX上传图像,而无需重定向页面。当我上传图像时,它重定向到控制器区域,并且值未插入数据库,ajax响应也不会出现, 任何人都可以解决我的问题吗? 这是我的视野。 这是我的Ajax编码 这是我的控制器编码… 这是我的模型编码 问题答案: 试试这个。 工作正常 -HTML表单- 阿贾克斯- 只需在ajax中设

  • 本文向大家介绍JS中使用FormData上传文件、图片的方法,包括了JS中使用FormData上传文件、图片的方法的使用技巧和注意事项,需要的朋友参考一下 关于FormData XMLHttpRequest Level 2添加了一个新的接口  ---- FormData 利用FormData对象,可以通过js用一些键值对来模拟一系列表单控件,可以使用XMLHttpRequest的 send( )