我尝试使用localhost上传图像立即上传,但是,在我的网站主机上试用时,文件显示在“_uploads”文件夹中花了5分钟以上。
有人遇到同样的问题吗? AV是否考虑到了扫描的延迟?
<?php
$hasError = false;foreach( $_FILES as $i=>$file ){
if ( $file['error'] ){
$hasError = true;
}
}
if ( ! $hasError ){
$filename = '_uploads/'.$_GET["key"].'_'.$file["name"];
$myFilePath = '_uploads/'.$_GET["key"].'_'.$file["name"];
$dta = file_get_contents($file['tmp_name']);
file_put_contents($myFilePath, $dta);
echo('success');
} else {
echo('Image was not successfully upload.');
}
?>
答案 0 :(得分:1)
查看本教程:http://www.w3schools.com/PHP/php_file_upload.asp
它使用下面的 move_uploaded_file 方法,我认为这是一种更有效的移动文件的方法,而不是 file_get_contents 和 file_put_contents
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
如果您还没有检查我确定您通过检查mime类型和扩展类型来检查上传的文件是否有效。
以下是PHP参考的链接:http://php.net/manual/en/function.move-uploaded-file.php
答案 1 :(得分:0)
取决于文件的大小。
在localhost上,该文件没有通过互联网传输。
文件的大小是多少?
您可能还想查看move_uploaded_file
而不是file_put_contents
http://php.net/manual/en/function.move-uploaded-file.php
<?php
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}