【问题标题】:Problem with Flash PHP uploadFlash PHP上传问题
【发布时间】:2010-07-23 03:58:51
【问题描述】:

我正在使用脚本上传照片(由我自己编写),它允许用户使用 Flash 选择多个文件。 当用户点击上传时,as3会将上传的文件发布到upload.php,调整大小,并一一保存。

问题: 在生产服务器,如果我上传很多照片,而且照片很大,>2MB,上传进度卡在一半,只有前几张照片上传成功。

我发现了什么: 如果我尝试使用 smaller 尺寸的照片,或者如果我在 upload.php 中禁用了 resizing 脚本,则完全没有问题。此外,该脚本在我的本地主机中工作正常与使用旧型号的有问题的服务器相比,使用较新的处理器)

调整大小脚本很简单。它只是检查图像分辨率是否大,如果需要,使用 imagecopyresampled() 调整图像大小。

我试图在upload.php 中取消设置图像资源以释放内存,但它没有帮助。 还有什么问题?

【问题讨论】:

  • 我猜多次调用 imagecopyresampled() 会导致问题。更改为 imagecopyresized() 效果更好(设法上传更多文件,但有轻微问题的可能性),但质量是一个问题。如果我删除了 (imagecopyresampled()),则完全没有问题。
  • 如果您使用的是 Flash 10 和 FileReference 类,那么您可以将图像直接加载到 Flash 中并在客户端在发送到服务器之前调整其大小.

标签: php flash actionscript-3 upload


【解决方案1】:

如果我没记错的话,php有2mb的上传限制,你可以在php.ini文件中更改。

【讨论】:

  • 来自:kavoir.com/2010/02/… $max_upload = (int)(ini_get('upload_max_filesize')); $max_post = (int)(ini_get('post_max_size')); $memory_limit = (int)(ini_get('memory_limit')); $upload_mb = min($max_upload, $max_post, $memory_limit);
  • 不,这不是问题。仅当我上传“许多大尺寸文件”时才会出现此问题。
【解决方案2】:

我解决了这个问题。

当我在 AS3 中使用这样的代码时会发生这种情况:

for(var i:Number = 0; i< fileList.length; i++) {
    fileList[i].upload(new URLRequest(param.uploadURL+"&sessionid="+param.session_id));
}

代码看起来像是以非常繁琐的方式推送upload.php脚本。

我对我的 AS3 和 JS 都进行了更改,以便 JS 仅在每次文件上传完成时调用 AS3 upload() 函数(来自事件侦听器 EVENT.COMPLETE)

通过这样做,AS3 不会为多个文件同步调用upload.php。相反,它等待一个文件完成上传,然后为下一个文件调用另一个上传。

【讨论】:

    猜你喜欢
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    相关资源
    最近更新 更多