我需要将csv文件上传到服务器。适用于较小的文件,但当文件为3-6 meg时,它不起作用。
$allowedExtensions = array("csv");
foreach ($_FILES as $file) {
if ($file['tmp_name'] > '') {
if (!in_array(end(explode(".", strtolower($file['name']))), $allowedExtensions)) {
die($file['name'].' is an invalid file type!<br/>'. '<a href="javascript:history.go(-1);">'. '<< Go Back</a>');
}
if (move_uploaded_file($file['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}
echo "File has been uploaded";
}
//上传表单
<form name="upload" enctype="multipart/form-data" action="<? echo $_SERVER['php_self'];?>?action=upload_process" method="POST">
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="31457280" />
<!-- Name of input element determines name in $_FILES array -->
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
我还将此添加到htaccess
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200
我哪里错了?
答案 0 :(得分:1)
$ _FILES ['userfile'] ['error']的值是多少?看看这里:
http://php.net/manual/en/features.file-upload.errors.php
此外,最新消息:
if ($file['tmp_name'] > '') {
我认为这不是很健康。
答案 1 :(得分:0)
对您的代码提出一些建议
($file['tmp_name'] > '')
应该类似( ! empty($file['tmp_name']))
$_SERVER['php_self']
应该大写,因为它是常量,即$_SERVER['PHP_SELF']
。答案 2 :(得分:0)
检查您的apache错误日志,错误应该在那里?
答案 3 :(得分:-1)
检查你的php.ini文件,看看upload_max_filesize是否设置高于3 MB,我不知道.htaccess是否优先于php.ini。
如果我没记错的话,debian php5的默认上传限制是2MB,但我不确定你在运行什么系统。
如果您创建文件,也可以检查php值。 info.php 和将它放在与“问题php脚本”相同的目录中。
文件内容应如下所示
<?php
phpinfo();
?>
这将为您提供与您所在目录相关的所有php相关值,希望它有所帮助。