【问题标题】:Uploadify only uploading small filesUploadify 只上传小文件
【发布时间】:2012-11-30 08:57:30
【问题描述】:

我已将在 Plesk/apache 上运行的 uploadify 设置为 FastCGI 上传到文档根目录下方的上传文件。这似乎适用于小于 1MB 的文件,但会在任何更大的文件上创建 ERROR 500。

$(function() {


var idx=$('.useri').val();
$('#file_upload2').uploadify({
    'multi'    : false,
    'swf'      : 'images/uploadify.swf',
    'uploader' : 'admin_includes/uploadify.php',
    'formData'  : {'user_id': idx},
    'fileSizeLimit' : '10MB',
    // Put your options here
    // Some options
    'onUploadSuccess' : function(file, data, response) {
        if(data==2)
        {
            alert("File Extension needs to be either .docx, .doc or .pdf");
        }
        else
        {
            var data_split=data.split("|");
            $('.title_holder').fadeIn(200);
            $('.upload_hider').show();
            $('.added_file').html("");
            $('.message12').html('<p class="added_file" data-file2='+data_split[1]+'>'+data_split[0]+' Successfully Uploaded.</p>');

        }
    }
});
});

我也设置了php.ini如下

safe_mode = Off
upload_tmp_dir /tmp
upload_max_filesize = 40M
post_max_size = 40M

这似乎也不起作用。我有什么遗漏或似乎做错了吗?

【问题讨论】:

  • 一个 Apache LimitRequestBody 也许?
  • 您查看您的网络服务器错误日志文件了吗?这通常会产生答案
  • 不要忘记 php 的 memory_limit - 你需要一个略高于 post_max_size 的限制。正如巴里所说,检查您的服务器的错误日志。有关 500 代码的更多详细信息将在那里。
  • 内存限制设置为 120M - 错误日志不认为可以通过任何内容,除了关于 IE 缓冲可能出现的错误的警告(不超过 512 个字符)。我在 php_infp 中注意到的其他事情是 upload_tmp_dir 显示“没有价值”。
  • A 500 Internal Sever Error总是查看服务器错误日志的邀请。它包含更多信息。由于这是 PHP,也很有可能是由于 PHP 中的致命错误,因此确保启用 PHP 错误日志并查看 PHP 错误日志也非常有用。 More about the 500 Internal Server Error --- 这么说是因为您已经评论了类似的提示:在您的 apache 错误日志文件中 is 对应于您的 500 错误条目。您需要找到它并将其添加到 Q 中。

标签: php javascript jquery file-upload uploadify


【解决方案1】:

尝试将sizeLimit 选项设置为

'sizeLimit': 5000000000

另外,作为建议,您可以尝试在 uploadify 调用中订阅 onError 处理程序。像这样,在onUploadSuccess 处理程序之后......

onError: function(a, b, c, d) {
    if (d.status == 404) alert('Could not find upload script.');
    else if (d.type === "HTTP") alert('error ' + d.type + ": " + d.status);
    else if (d.type === "File Size") alert(c.name + ' ' + d.type + ": " + d.status);
    else alert('error ' + d.type + ": " + d.text);
}​

【讨论】:

    【解决方案2】:

    感谢您的帮助,但我似乎已经解决了问题。 我在这个帖子中没有说的是我的服务器安装了 Plesk 10.3.1。这个版本的 Plesk 似乎将服务器配置中的 maxRequestLen 覆盖为 128Kb。

    解决方案是将其重置为 1GB(正常默认大小)或 /usr/local/psa/admin/conf/templates/default/domain/domainVirtualHost.php 或 /etc/httpd/conf.d 中所需的大小/fcgid.conf 并重启服务器。

    据我所知,未来版本的 Plesk 没有这个问题。

    【讨论】:

      【解决方案3】:

      您可能会收到与 PHP 配置相关的错误。除了upload_max_filesizepost_max_size,您还应该有以下值:

      max_execution_time
      max_input_time
      

      两者都定义了脚本的最长生命周期和脚本在接受输入时应该花费的时间。

      【讨论】:

      • True - 这些已添加到我的 php.ini 中,尽管默认值(除非需要上传高达 1GB 的大文件)似乎已经足够了。我已将上传脚本中的文件大小限制设置为 15MB,因此这似乎没有问题。谢谢:)
      猜你喜欢
      • 2023-03-29
      • 1970-01-01
      • 2013-04-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多