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

正在上载带有FormData的blob,文件内容为空

谭健柏
2023-03-14

我正试图在chrome上上传一个包含FormData的blob。我正在开发一个网络应用。用户可以创建一个配置文件并选择一个化身,这是一个img标签。当我尝试执行一个ajax请求时,我会用该图像构建一个画布,并在其上调用toDataURL。然后我使用这个函数将数据转换成二进制内容

    dataURItoBlob: function(dataURI) {
      var binary = atob(dataURI.split(',')[1]);
      var array = [];
      for(var i = 0; i < binary.length; i++) {
        array.push(binary.charCodeAt(i));
      }
      return new Blob([new Uint8Array(array)], {type: 'application/octet-stream'});
    }

创建blob后,我将其添加到formData中,并发送ajax查询(使用jquery)。问题是,文件的内容似乎是空的。

 ------WebKitFormBoundarysToAVAYMLPFfJF96
 Content-Disposition: form-data; name="image"; filename="avatar.png"
 Content-Type: application/octet-stream


 ------WebKitFormBoundarysToAVAYMLPFfJF96--

使用FileReader,我在Blob上做一个readAsText,它实际上有内容:

 �PNG


 IHDR�
 IDATx^���������v�"�`���^[l��N�����׸�k�؁�X�B�[�i�eٜ����yg����E�dF����o~���{�s�sN(�˲�_t�ɤ����݇ns(Z�6ڇ>�O}}��b��l�����ks�̱��r�w�}��{��x<޲}�Q644XNN�;޷�~k7�|��z��V[[�����o�����rss��WTTXII�UWW[^^^��455Yqq���Ը��ߏ>���Xc
 ���s��o��Yg�ew�y�566��...

有人遇到过这个问题吗?我只是不明白为什么查询会发送一个空文件。

共有1个答案

阎晗日
2023-03-14

Chrome开发人员工具实际上没有在表单数据中显示文件的内容,检查服务器端是否确实是空的。Firebug(火狐插件)显示了一部分文件数据,你也可以使用像fiddler这样的工具来查看超文本传输协议的帖子正文。

 类似资料:
  • 我可以使用以下C代码将文件上载到azure blob存储, 这里我提供blob存储连接字符串和容器名称。 现在,我可以看到我在下有URL, 问题,我可以编写C代码,使用上面的URL上传文件,而不是使用连接字符串/容器名称吗?

  • 这是我想在Textview上显示的HTML文件: 它有一些的外部链接。js和。css文件 我已经把它储存在资产文件夹里了。 我使用的是mTextview.setText(Html.fromHtml(htmlContentInStringFormat)),但它显示的是纯文本。我想要正确的程式化文本,因为当我打开. html文件时,它会像这样显示: 期望输出 请帮助我。

  • 我有Node.js应用程序,前端在Angular中,我需要上传和下载文件到Azure Blob/Azure存储 我已经按照这里给出的说明进行了操作:https://github.com/azure/azure-sdk-for-js/blob/master/sdk/storage/storage-blob/samples/typescript/src/basic.ts 下面是我的代码,它列出了BLO

  • 我正在尝试使用C#上传一个word文档到blob存储。代码片段如下: 你知道出什么问题了吗?

  • 我看了看线索,遵循了建议——这让我来到了这里...我使用WAMP-php rev 5.4.12(Win7) 代码尽可能简单:$result=file\u get\u contents(“https://g4apps.bliptrack.net/blipzones/report/publicdisplayapi.seam?display_id=dvp_vms4"); (此URL返回XML文件-在浏览

  • 我有一个Azure函数,当一个blob被上传到某个目录时会被触发。它处理一个zip文件。当我用Azure storage explorer将文件上传到容器时,它工作得非常好。当我通过网络API上传它时,它爆炸了。如果我下载了这个文件,它似乎已经损坏,但是,它与源文件大小相同,当我在2个文件之间进行超越比较时,它看起来是相同的(超越比较似乎可以看到zip文件的内容)。 这里是上传代码: 文件可以很好