文件上传到服务器需要时间来完成

时间:2010-07-08 15:00:22

标签: php file-upload

我尝试使用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.');
}
?>

2 个答案:

答案 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");
    }
}