2013-04-30 58 views
1

问题是php 5.4的上传进度功能似乎不起作用。不管我做什么,session变量都没有被填充。PHP的上传进度功能实际上有效吗?

  • session.upload-progress变量被填充和设置。
  • file_uploads启用
  • 的upload_max_filesize设置为2000M
  • 的post_max_size设置为2000M
  • upload_tmp_dir可写
  • 形式的隐藏变量被设置,其之前的任何输入元件和它的名字是:ini_get("session.upload_progress.name")

到目前为止,Debian在使用php5 5.4.1和apache2模块进行挤压时没有成功。

我也检查了apc rfc1867钩子。只是不行。与uploadprogress扩展名一样。有任何想法吗?

例中使用的

的上传进度: http://www.ultramegatech.com/2010/10/create-an-upload-progress-bar-with-php-and-jquery/

为APC: http://blog.famillecollet.com/post/2011/01/12/File-upload-progress-in-PHP-with-APC

为PHP 5.4: https://github.com/chemicaloliver/PHP-5.4-Upload-Progress-Example

PHP 5.4直列(上传启动后,只需调用来自另一个标签的同一个文件...):

upload.php的:

<? 
session_start(); 
var_dump($_SESSION[ ini_get("session.upload_progress.name") . "123"]); 

?> 

<form action="upload.php" method="POST" enctype="multipart/form-data"> 
<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="123" /> 
<input type="file" name="file1" /> 
<input type="file" name="file2" /> 
<input type="submit" /> 
</form> 
+0

你的代码是什么样的? – powtac 2013-04-30 12:06:18

回答

1

地狱,nginx的是罪魁祸首。如果它用作代理,它首先存储整个上传文件,当整个文件到达时,将其发送到Apache或任何其他使用的服务器。因此没有上传进度。

+0

你应该检查Nginx的配置,我可以想象有一些配置可以控制这种行为。 – hakre 2013-05-11 08:14:18