Php 上载多个图像,根据先前上载的值提供唯一的名称
我试图上传多张图片,但根据之前上传的值给它一个唯一的名称 问题:如果我添加睡眠(3),序列将是正确的,但一些图像仍然不会上传,可能是因为它正在睡眠 如果我不睡觉,值将是1,然后是2 3 在继续之前,如何等待move_上传的文件完成?它似乎没有这样做Php 上载多个图像,根据先前上载的值提供唯一的名称,php,arrays,image,file,laravel,Php,Arrays,Image,File,Laravel,我试图上传多张图片,但根据之前上传的值给它一个唯一的名称 问题:如果我添加睡眠(3),序列将是正确的,但一些图像仍然不会上传,可能是因为它正在睡眠 如果我不睡觉,值将是1,然后是2 3 在继续之前,如何等待move_上传的文件完成?它似乎没有这样做 $files = $_FILES['fileselect']; foreach ($files as $file) { //Check Database for Latest File
$files = $_FILES['fileselect'];
foreach ($files as $file) {
//Check Database for Latest File "Name" Count
//TODO , verify Orderby
$node = DB::table('product_options')->where('product_id', Input::get('productID'))->orderby('created_at','desc')->first();
if($node){
//If extra image already exist
$keywords = preg_split("/[_]+/", $node->image);
var_dump($keywords);
$fn = Input::get('productID').'_'.($keywords[1]+1).'_extra'.'.jpg';
$returnID = Option::create(array('image'=>'productImg/'.$fn,'product_id' =>Input::get('productID')));
move_uploaded_file($file[0],'productImg/' . $fn);
echo("<p>File $fn uploaded.</p>");
}else{
$fn = Input::get('productID').'_1_extra'.'.jpg';
$returnID = Option::create(array('image'=>'productImg/'.$fn,'product_id' =>Input::get('productID')));
move_uploaded_file($file[0],'productImg/' . $fn);
echo ("<p>File $fn uploaded.</p>");
}
}
使用Sleep Echo将按顺序(正确)返回,但在我的文件夹中缺少图像(一半)。我认为您必须使用变量控制增量,如下所示:
$files = $_FILES['fileselect'];
$i = 0;
foreach ($files as $file) {
//Check Database for Latest File "Name" Count
//TODO , verify Orderby
$node = DB::table('product_options')->where('product_id', Input::get('productID'))->orderby('created_at','desc')->first();
if($node){
//If extra image already exist
$keywords = preg_split("/[_]+/", $node->image);
var_dump($keywords);
if($i == 0) {
$i += $keywords[1] + 1;
}
else {
++$i;
}
$fn = Input::get('productID').'_'. $i .'_extra'.'.jpg';
$returnID = Option::create(array('image'=>'productImg/'.$fn,'product_id' =>Input::get('productID')));
move_uploaded_file($file[0],'productImg/' . $fn);
echo("<p>File $fn uploaded.</p>");
}else{
$fn = Input::get('productID').'_1_extra'.'.jpg';
$returnID = Option::create(array('image'=>'productImg/'.$fn,'product_id' =>Input::get('productID')));
move_uploaded_file($file[0],'productImg/' . $fn);
echo ("<p>File $fn uploaded.</p>");
}
}
$files=$\u files['fileselect'];
$i=0;
foreach($files作为$file){
//检查数据库中最新的文件“名称”计数
//TODO,验证Orderby
$node=DB::table('product_options')->where('product_id',Input::get('productID'))->orderby('created_at','desc')->first();
如果($node){
//如果已经存在额外的映像
$keywords=preg\u split(“/[\u]+/”,$node->image);
var_dump($关键字);
如果($i==0){
$i+=$keywords[1]+1;
}
否则{
++$i;
}
$fn=Input::get('productID')。“'i.''u extra'.jpg';
$returnID=Option::create(数组('image'=>'productImg/'。$fn,'product_id'=>Input::get('productID'));
移动上传的文件($file[0],'productImg/'。$fn);
echo(“上传的文件$fn.”;
}否则{
$fn=Input::get('productID').“额外的”;
$returnID=Option::create(数组('image'=>'productImg/'。$fn,'product_id'=>Input::get('productID'));
移动上传的文件($file[0],'productImg/'。$fn);
echo(“上传的文件$fn.”;
}
}
我想我别无选择,只能这样做:(太奇怪了,数据库太慢了?
$files = $_FILES['fileselect'];
$i = 0;
foreach ($files as $file) {
//Check Database for Latest File "Name" Count
//TODO , verify Orderby
$node = DB::table('product_options')->where('product_id', Input::get('productID'))->orderby('created_at','desc')->first();
if($node){
//If extra image already exist
$keywords = preg_split("/[_]+/", $node->image);
var_dump($keywords);
if($i == 0) {
$i += $keywords[1] + 1;
}
else {
++$i;
}
$fn = Input::get('productID').'_'. $i .'_extra'.'.jpg';
$returnID = Option::create(array('image'=>'productImg/'.$fn,'product_id' =>Input::get('productID')));
move_uploaded_file($file[0],'productImg/' . $fn);
echo("<p>File $fn uploaded.</p>");
}else{
$fn = Input::get('productID').'_1_extra'.'.jpg';
$returnID = Option::create(array('image'=>'productImg/'.$fn,'product_id' =>Input::get('productID')));
move_uploaded_file($file[0],'productImg/' . $fn);
echo ("<p>File $fn uploaded.</p>");
}
}