<bdo id='K4jwQ'></bdo><ul id='K4jwQ'></ul>
      <i id='K4jwQ'><tr id='K4jwQ'><dt id='K4jwQ'><q id='K4jwQ'><span id='K4jwQ'><b id='K4jwQ'><form id='K4jwQ'><ins id='K4jwQ'></ins><ul id='K4jwQ'></ul><sub id='K4jwQ'></sub></form><legend id='K4jwQ'></legend><bdo id='K4jwQ'><pre id='K4jwQ'><center id='K4jwQ'></center></pre></bdo></b><th id='K4jwQ'></th></span></q></dt></tr></i><div id='K4jwQ'><tfoot id='K4jwQ'></tfoot><dl id='K4jwQ'><fieldset id='K4jwQ'></fieldset></dl></div>

      1. <small id='K4jwQ'></small><noframes id='K4jwQ'>

      2. <legend id='K4jwQ'><style id='K4jwQ'><dir id='K4jwQ'><q id='K4jwQ'></q></dir></style></legend>
      3. <tfoot id='K4jwQ'></tfoot>

        POST 文件以及表单数据 Vue + axios

        时间:2023-07-15

        <small id='CX31L'></small><noframes id='CX31L'>

          <tbody id='CX31L'></tbody>

        • <bdo id='CX31L'></bdo><ul id='CX31L'></ul>

          1. <tfoot id='CX31L'></tfoot>
            <i id='CX31L'><tr id='CX31L'><dt id='CX31L'><q id='CX31L'><span id='CX31L'><b id='CX31L'><form id='CX31L'><ins id='CX31L'></ins><ul id='CX31L'></ul><sub id='CX31L'></sub></form><legend id='CX31L'></legend><bdo id='CX31L'><pre id='CX31L'><center id='CX31L'></center></pre></bdo></b><th id='CX31L'></th></span></q></dt></tr></i><div id='CX31L'><tfoot id='CX31L'></tfoot><dl id='CX31L'><fieldset id='CX31L'></fieldset></dl></div>

                • <legend id='CX31L'><style id='CX31L'><dir id='CX31L'><q id='CX31L'></q></dir></style></legend>
                  本文介绍了POST 文件以及表单数据 Vue + axios的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我有一个 Vuejs 组件的方法:

                  I have a method for Vuejs component:

                  async submit () {
                          if (this.$refs.form.validate()) {
                            let formData = new FormData()
                            formData.append('userImage', this.avatarFile, this.avatarFile.name)
                            this.avatarFile = formData
                            try {
                              let response = await this.$axios.post('http://localhost:3003/api/test.php', {
                                avatar: this.avatarFile,
                                name: this.name,
                                gender: this.gender,
                                dob: this.DOB,
                              }, {
                                headers: {
                                  'Content-Type': 'multipart/form-data; boundary=' + formData._boundary
                                }
                              })
                              if (response.status === 200 && response.data.status === 'success') {
                                console.log(this.response)
                              }
                            } catch (e) {
                             console.log(e)
                            }
                          }
                        }
                  

                  test.php 中,我使用 json_decode(file_get_contents("php://input"), TRUE); 将数据读取为 $_POST 变量.

                  And in test.php, I'm using json_decode(file_get_contents("php://input"), TRUE); to read data as $_POST variables.

                  虽然我能够正确读取namegenderdob,但我无法获取avatar正确.

                  While I am able to read name, gender and dob correctly, I can't fetch avatar properly.

                  有相同的解决方案吗?

                  注意:我不会将每个变量附加为 formData.append(.., ..) 因为我计划处理超过 14 个变量.

                  Note: I don't to append every variable as formData.append(.., ..) as I am planning to handle over 14 variables.

                  版主注意:我没有发现将 formData 与其他数据对象一起使用的任何问题.

                  Note for moderators: I didn't find any question where formData was being used along with other data objects.

                  推荐答案

                  所以,我以一种更简单的方式解决了这个问题:

                  So, I figured this one out in a simpler way:

                      let rawData = {
                                  name: this.name,
                                  gender: this.gender,
                                  dob: this.dob
                                }
                                rawData = JSON.stringify(rawData)
                      let formData = new FormData()
                            formData.append('avatar', this.avatarFile, this.avatarFile.name)
                            formData.append('data', rawData)
                      try {
                              let response = await this.$axios.post('http://localhost:3003/api/test.php', formData, {
                                headers: {
                                  'Content-Type': 'multipart/form-data'
                                }
                           })
                  

                  test.php:

                  $_POST = json_decode($_POST['data'],true);
                  

                  注意:我可以选择使用:

                  Object.keys(rawData).map(e => {
                              formData.append(e, rawData[e])
                            })
                  

                  但是由于我在 rawData 中处理嵌套对象 (name: { first: '', last: ''} ),我选择不这样做,因为它需要递归方法客户端或服务器端.

                  but since I was dealing with nested objects (name: { first: '', last: ''} ) in rawData, I chose not to do that as it would require recursive methods on either client side or server side.

                  这篇关于POST 文件以及表单数据 Vue + axios的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:未收到带有 axios 发布请求的 Set-Cookie 标头 下一篇:在 PHP 中处理 Axios POST

                  相关文章

                • <i id='7RhX3'><tr id='7RhX3'><dt id='7RhX3'><q id='7RhX3'><span id='7RhX3'><b id='7RhX3'><form id='7RhX3'><ins id='7RhX3'></ins><ul id='7RhX3'></ul><sub id='7RhX3'></sub></form><legend id='7RhX3'></legend><bdo id='7RhX3'><pre id='7RhX3'><center id='7RhX3'></center></pre></bdo></b><th id='7RhX3'></th></span></q></dt></tr></i><div id='7RhX3'><tfoot id='7RhX3'></tfoot><dl id='7RhX3'><fieldset id='7RhX3'></fieldset></dl></div>

                  <small id='7RhX3'></small><noframes id='7RhX3'>

                    <tfoot id='7RhX3'></tfoot>
                        <bdo id='7RhX3'></bdo><ul id='7RhX3'></ul>
                    1. <legend id='7RhX3'><style id='7RhX3'><dir id='7RhX3'><q id='7RhX3'></q></dir></style></legend>