这是一个多图像选择器上传器,我遇到的问题是一旦选择了图像并单击提交,请求需要很长时间才能处理,有什么方法可以使其处理得更快?
不要担心数据库表和列是出于测试原因而没有使我的完整数据库刚刚测试的第一个。
提前谢谢。
<?
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";
}
}
?>
根据上面的评论,上传似乎是正常的。您的互联网连接速度较慢,上传文件时速度会变慢。
我也强烈建议你研究MySQLi或PDO。您当前的脚本很容易受到攻击
据我所知,没有将文件多线程上传到服务器。并且上传速度受服务器下载速度和用户上传速度的限制(比服务器的下载速度慢得多)。不幸的是,无法通过更改代码来加快上传速度。