我试图允许用户使用HTML文件输入和PHP上传最多2GB的jar文件。该过程工作正常,它上传文件,但只有它很小。我已将php.ini设置为:
max_execution_time = 10000
max_input_time = 10000
post_max_size = 2048M
upload_max_filesize = 2048M
在我这样做之后,它创建了我的所有php页面:
require_once("../include/config.php");
加载为带有NOTHING的纯白页或(有时)它给我这个错误:
Fatal error: Cannot redeclare encodePassword() (previously declared in /home/duskfall/public_html/authentication/encode.php:2) in /home/duskfall/public_html/authentication/encode.php on line 80
第80行说它是:
$coded = "";
为什么我只在php.ini中放入4个内容时会这样做。当我创建php.ini文件时,它们也是唯一的4件事。当我把NOTHING放在php.ini文件中时它甚至会这样做。我是否需要在文件中添加其他内容?
我该如何解决这个问题。或者有没有更好的方法来使用php.ini并使其仅影响一个php页面?
编辑:我也在Linux服务器上使用主机godaddy.com,如果这有帮助的话。
答案 0 :(得分:0)
post_max_size也必须高于upload_max_filesize 在php脚本中使用:
echo ini_get(“memory_limit”)。“\ n”;
的ini_set( “memory_limit的”, “30M”);
echo ini_get(“memory_limit”)。“\ n”;
echo ini_get(“post_max_size”)。“\ n”;
的ini_set( “的post_max_size”, “20M”);
echo ini_get(“post_max_size”)。“\ n”;
echo ini_get(“upload_max_filesize”)。“\ n”;
的ini_set( “的upload_max_filesize”, “19M”);
echo ini_get(“upload_max_filesize”)。“\ n”;
此外:
我认为你的函数encodePassword()有问题。
尝试使用新的清除测试文件,如:
test.html
<form enctype="multipart/form-data" action="/path/to/your/phpscript" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
test.php
$uploaddir = '/path/to/your/dir';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "Success.\n";
} else {
echo "Error!\n";
}
echo '<pre>';
echo 'Debug file:';
print_r($_FILES);
echo "</pre>";