2013-04-30 57 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