Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 上载多个图像,根据先前上载的值提供唯一的名称_Php_Arrays_Image_File_Laravel - Fatal编程技术网

Php 上载多个图像,根据先前上载的值提供唯一的名称

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

我试图上传多张图片,但根据之前上传的值给它一个唯一的名称

问题:如果我添加睡眠(3),序列将是正确的,但一些图像仍然不会上传,可能是因为它正在睡眠

如果我不睡觉,值将是1,然后是2 3

在继续之前,如何等待move_上传的文件完成?它似乎没有这样做

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