【问题标题】:Flex FileReference upload() and .data ... does this load the whole file into memory?Flex FileReference upload() 和 .data ...这会将整个文件加载到内存中吗?
【发布时间】:2010-07-12 23:11:48
【问题描述】:

我需要通过我的 Flex 应用程序将一个非常大的文件上传到我的服务器,我看到 Flex Filereference upload() 似乎能够处理它。 upload() 方法是否将“流”上传到 servlet,还是发送整个 ByteArray(据我了解,ByteArray 将包含整个文件内容,因此 >1Gb 的文件会淹没我的内存)。

我还没有找到对其中一个的确认。似乎 flex.net.FileReference 源代码是 flash 的一部分,而不是开源 flex,所以我不能偷看。

在向服务器发送文件内容时,任何人都可以确认或拒绝使用整个 byteArray 吗?

谢谢

【问题讨论】:

  • 我不知道内部原理,但我认为这就是它的工作原理。 Flash 需要整个文件才能对其执行操作;它不充当从硬盘驱动器到服务器的“byteArray Streamer”。如果您正在处理非常大的文件,我强烈建议您不要使用 HTTP 上传所述文件;因为那不是它的预期目的。

标签: apache-flex file-upload filereference


【解决方案1】:

当尝试使用 Flash 上传大文件时,将文件加载到内存中并不是您最关心的问题 - 上传本身非常不可靠。根据Flex referenceFlash 播放器官方支持上传文件大小最大为 100 MB。我的经验证实大文件上传经常失败。您可以查看此file upload component 以在 chinks 中上传大文件并恢复部分上传。但是,此解决方案还需要在开始上传之前将文件完全加载到内存中。

【讨论】:

    【解决方案2】:

    如果没有指定参数,following sample HTTP POST request 将从 Flash Player 发送到服务器端脚本:

      POST /handler.cfm HTTP/1.1 
      Accept: text/*
      Content-Type: multipart/form-data; 
      boundary=----------Ij5ae0ae0KM7GI3KM7 
      User-Agent: Shockwave Flash 
      Host: www.example.com 
      Content-Length: 421 
      Connection: Keep-Alive 
      Cache-Control: no-cache
    
      ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
      Content-Disposition: form-data; name="Filename"
    
      MyFile.jpg
      ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
      Content-Disposition: form-data; name="Filedata"; filename="MyFile.jpg"
      Content-Type: application/octet-stream
    
      FileDataHere
      ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
      Content-Disposition: form-data; name="Upload"
    
      Submit Query
      ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--
    

    它看起来类似于post request generated by a file input html control。所以它不是字节数组,但浏览器仍然需要在发送文件之前将文件加载到内存中; 1GB 对于任何文件上传来说都太大了 - 无论是否闪存。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多