PHP 上传 14MB 文件失败
PHP upload 14MB file failing
我正在尝试找出此上传脚本失败的原因。
从 HTML 表格开始:
<form role="form" action="api/upload.php" method="post" enctype="multipart/form-data">
<input id="file" name="file" type="file" />
<input class="btn btn-primary" type="submit" value="Upload" />
</form>
这是 PHP 脚本:
<?php
if(isset($_FILES['file'])){
$file = $_FILES['file'];
$target_file = basename($_FILES["file"]["name"]);
$file_name = $file['name'];
$file_tmp = $file['tmp_name'];
$file_size = $file['size'];
$file_error = $file['error'];
$file_ext = explode('.',$file_name);
$file_ext = strtolower(end($file_ext));
$allowed = array('txt', 'jpg', 'xlsx', 'pptx', 'docx', 'doc', 'xls', 'pdf');
if(in_array($file_ext, $allowed)){
if($file_error === 0){
if($file_size <= 99600000){ // this was set to 600000
$file_name_new = uniqid('', true) . '.' . $file_ext;
$file_destination = '../files/' . $file_name;
if(move_uploaded_file($file_tmp, $file_destination)){
header("Location: ../index.php");
die();
}
else{
echo "There was a problem uploading the file";
}
}
else{
echo "The file is too large";
}
}
else{
echo "There was an error uploading the file";
}
}
else{
echo "The file type is not allowed";
}
}
?>
请原谅嵌套的 IF 语句。我在 youtube 上关闭了这个视频:https://www.youtube.com/watch?v=PRCobMXhnyw
上面的代码有效。我可以上传文件,当发生错误时,我会收到相应的错误消息。
但是,我遇到了无法上传的文件。这是一个允许的文件,一个 word 文档,恰好是 14MB。不确定这是否太大。但即使如此,我尝试上传的文件太大也无法通过 file_size 检查,我会收到相应的错误消息。
在这种情况下,我得到的只是一个空白屏幕。我可以在初始 IF 语句前后回显 'hello',但它在第一个 IF.
之后立即失败
您应该简单地增加 php.ini
文件中 upload_max_filesize
的值(默认情况下为 2M
)(其位置取决于您的操作系统),然后重新启动您的网络服务器.
我正在尝试找出此上传脚本失败的原因。
从 HTML 表格开始:
<form role="form" action="api/upload.php" method="post" enctype="multipart/form-data">
<input id="file" name="file" type="file" />
<input class="btn btn-primary" type="submit" value="Upload" />
</form>
这是 PHP 脚本:
<?php
if(isset($_FILES['file'])){
$file = $_FILES['file'];
$target_file = basename($_FILES["file"]["name"]);
$file_name = $file['name'];
$file_tmp = $file['tmp_name'];
$file_size = $file['size'];
$file_error = $file['error'];
$file_ext = explode('.',$file_name);
$file_ext = strtolower(end($file_ext));
$allowed = array('txt', 'jpg', 'xlsx', 'pptx', 'docx', 'doc', 'xls', 'pdf');
if(in_array($file_ext, $allowed)){
if($file_error === 0){
if($file_size <= 99600000){ // this was set to 600000
$file_name_new = uniqid('', true) . '.' . $file_ext;
$file_destination = '../files/' . $file_name;
if(move_uploaded_file($file_tmp, $file_destination)){
header("Location: ../index.php");
die();
}
else{
echo "There was a problem uploading the file";
}
}
else{
echo "The file is too large";
}
}
else{
echo "There was an error uploading the file";
}
}
else{
echo "The file type is not allowed";
}
}
?>
请原谅嵌套的 IF 语句。我在 youtube 上关闭了这个视频:https://www.youtube.com/watch?v=PRCobMXhnyw
上面的代码有效。我可以上传文件,当发生错误时,我会收到相应的错误消息。
但是,我遇到了无法上传的文件。这是一个允许的文件,一个 word 文档,恰好是 14MB。不确定这是否太大。但即使如此,我尝试上传的文件太大也无法通过 file_size 检查,我会收到相应的错误消息。
在这种情况下,我得到的只是一个空白屏幕。我可以在初始 IF 语句前后回显 'hello',但它在第一个 IF.
之后立即失败您应该简单地增加 php.ini
文件中 upload_max_filesize
的值(默认情况下为 2M
)(其位置取决于您的操作系统),然后重新启动您的网络服务器.