0

这是一个多图像选择器上传器,我遇到的问题是一旦选择图像并单击提交它需要很长时间才能收到请求有没有办法让它处理得更快?

不要担心数据库表和列是否因为测试原因而没有使我的完整数据库成为第一个测试。

提前致谢。

   <?
session_start();
include('connect.php');
?>

<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="files[]" multiple/>
<input type="submit"/>
</form>

<?

if(isset($_FILES['files'])){
$errors= array();
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
    $file_name = $key.$_FILES['files']['name'][$key];
    $file_size =$_FILES['files']['size'][$key];
    $file_tmp =$_FILES['files']['tmp_name'][$key];
    $file_type=$_FILES['files']['type'][$key];  
    if($file_size > 2097152){
        $errors[]='File size must be less than 2 MB';
    }
$desired_dir="Uploads/";    
    $query="INSERT into Pictures (`id`,`Image1`,`Image2`,`Image3`) VALUES('','$desired_dir$file_name','$file_size','$file_type'); ";
    if(empty($errors)==true){
        if(is_dir($desired_dir)==false){
            mkdir("$desired_dir", 0700);        // Create directory if it does not exist
        }
        if(is_dir("$desired_dir/".$file_name)==false){
            move_uploaded_file($file_tmp,"$desired_dir/".$file_name);
        }else{                                  // rename the file if another one exist
            $new_dir="$desired_dir/".$file_name.time();
             rename($file_tmp,$new_dir) ;               
        }
     mysql_query($query);           
    }else{
            print_r($errors);
    }
}
if(empty($error)){
    echo "Success";
}
}
?>
4

2 回答 2

1

根据上面的评论,上传似乎正常。您的 Internet 连接速度较慢,上传文件时速度会变慢。

我还强烈建议您研究MySQLiPDO。您当前的脚本很容易受到攻击

于 2013-01-30T23:43:05.883 回答
0

据我所知,没有多线程将文件上传到服务器。并且上传速度受限于服务器的下载速度用户的上传速度(比服务器的下载速度慢得多)。不幸的是,无法通过更改代码来加快上传速度。

于 2015-09-29T06:27:05.207 回答