What I want to achieve is that the uploadify upload image into the database automatically generate tokens to think of the GUID
The upload class is using the thinkphp itself upload class results inserted into the database found that each picture is different
such as this
This is how uploadyify is processed after uploading.
Public Function uploadify () {if (!empty ($_files)) {$config =array (' maxSize ' = 1024 000,//attachment size ' savepath ' = ' attachment/picture/uploadify/',//Attachment save path ' Savename ' =>array (' u Niqid ', '),//Accessory save name ' exts ' =>array (' jpg ', ' jpeg ', ' png ', ' gif ', ' rar ', ' zip '),//Attachment type ' autosub ' = >true,//Open subdirectory save ' subname ' =>array (' Date ', ' YMD ')//subdirectory naming rules); $upload =new \think\upload ($config); $files _upload= $upload->upload (); if ($files _upload) {foreach ($files _upload as $file) {//$info = $files _upload[' filedate ' [' Sav Epath ']. $files _upload[' Filedata ' [' savename '];//file name after uploading $savename = $file [' Savename '];// File name before uploading $name = $file [' name '];//upload file type $type = $file [' EX T '];//upload file size k $size = $file [' Size '];//upload Directory $path = $file [' Savepath ']. $file [' SubName ']. $file [' Savename ']; $attachment =d (' picture_attachment '); $date [' Creattime ']=date (' y-m-d h:i:s ', Time ()); $date [' Pictureurl ']= $path; $date [' oldname ']= $name; $date [' newname ']= $savename; $date [' picturesize ']= $size; $date [' PictureType ']= $type; $date [' pictureid '] = $this->guid ();//Token GUID if ($attachment->create ($date)) { $attachment->add (); Session (' GUID ', $date [' Pictureid ']); /* Return to the foreground JS call */echo $path; } else{Unlink ($path. $type); Session ("Filesinfo", null); } } ; }else{/* Return error message */ $info = $this->error ($upload->geterror (), U (' Picture/add '), 30); Echo $info; }} else{echo ' Upload file is empty '; }//End}
This is the time to traverse the uploaded file to generate a call $date [' pictureid '] = $this->guid () How this is done only once
So the GUID of a multi-figure token is the same ~ Ask the big God to guide specific how to do ah trouble familiar with the TP3.2 of God help ~ Thank you
Reply to discussion (solution)
Does that mean this? $date [' pictureid '] = $this->guid ();//Token GUID
You do it in the loop, it's not the same every time.
You put it in front of the loop, don't you just do it once?
Does that mean this? $date [' pictureid '] = $this->guid ();//Token GUID
You do it in the loop, it's not the same every time.
You put it in front of the loop, don't you just do it once?
This is not a problem is not the use of the upload class itself?
This class exceeds the limit of 1W characters .....
The great God who is familiar with TP if you see the problem with the way it's handled here, it doesn't work outside the loop.
thinkphp\library\think\upload.class.php
Does that mean this? $date [' pictureid '] = $this->guid ();//Token GUID
You do it in the loop, it's not the same every time.
You put it in front of the loop, don't you just do it once?
This is not a problem is not the use of the upload class itself?
This class exceeds the limit of 1W characters .....
The great God who is familiar with TP if you see the problem with the way it's handled here, it doesn't work outside the loop.
thinkphp\library\think\upload.class.php
Put a
$upload =new \think\upload ($config);
$files _upload= $upload->upload ();
The two methods implemented in the Upload class
Array (),//Allow upload of file MIME type ' maxSize ' = + 0,//upload file size limit (0-No limit) ' exts ' = = Array (),// Allow upload of file suffix ' autosub ' = true,//Auto subdirectory save file ' subname ' = = Array (' Date ', ' y-m-d '),//subdirectory creation mode, [0]-function name, [1]-parameter, multiple parameters use array ' rootpath ' = ', '/' Save root path ' savepath ' = ', '//save path ' Saven Ame ' = = Array (' uniqid ', '),//upload file naming rules, [0]-function name, [1]-parameter, multiple parameters using array ' saveext ' = ' + ',//File save suffix, empty then use original post Prefix ' Replace ' = true,//existence of the same name overwrite ' hash ' = true,//whether to generate hash code ' callback ' = > False,//detects if a file exists callback, if there is a return file information array ' driver ' + ',//File Upload drive ' driverconfig ' = = Array (), Upload drive configuration); /** * Upload Error message * @var String */private $error = '; Upload error message/** * Upload Driver instance * @var Object */private $uploader; /** * Construction method for constructing upload instance * @param array $config configuration * @param string $driver The upload driver local-local upload driver to use, ftp-ftp upload driver */Public function __construct ($config = Array (), $driver = ' ', $driverConfig = null) {/* get configuration */$this->config = Array_merge ($this->config, $config); /* Set Upload driver */$this->setdriver ($driver, $driverConfig); /* Adjust the configuration to convert the string configuration parameter to an array */if (!empty ($this->config[' mimes ')) {if (is_string ($this->mimes)) { $this->config[' mimes '] = explode (', ', $this->mimes); } $this->config[' mimes ' = Array_map (' Strtolower ', $this->mimes); } if (!empty ($this->config[' exts ')) {if (is_string ($this->exts)) {$this->config[ ' exts '] = explode (', ', $this->exts); } $this->config[' exts ' = Array_map (' Strtolower ', $this->exts); }}/** * upload file * @param file information array $files, usually $_files array */Public function upload ($files = ") {if (' ' = = = $files) {$files = $_files; } if (empty ($files)) {$this->error = ' no uploaded file! '; return false; }/* detects the upload root directory */if (! $this->uploader->checkrootpath ($this->rootpath)) {$this->error = $this->uploader->geterror (); return false; }/* Check the Upload directory */if (! $this->uploader->checksavepath ($this->savepath)) {$this->error = $ This->uploader->geterror (); return false; }/* Detect and upload files individually */$info = array (); if (function_exists (' Finfo_open ')) {$finfo = Finfo_open (Fileinfo_mime_type); }//To the uploaded file array information processing $files = $this->dealfiles ($files); foreach ($files as $key = + $file) {if (!isset ($file [' key ')]) $file [' key '] = $key; /* Get file types by extension to resolve problems with the Flash upload $files array return file type Error */if (Isset ($finfo)) {$file [' type '] = Finfo_file ($finfo, $file [' tmp_name ']); }/* Get upload file suffix, allow upload no suffix file */$file [' ext '] = pathinfo ($file [' name '], pathinfo_extension); /* File Upload detection */if (! $this->check ($file)) {continue; }/* Gets the file hash */if ($this->hash) {$file [' md5 '] = md5_file ($file [' tmp_name ']); $file [' sha1 '] = sha1_file ($file [' tmp_name ']); }/* Call the callback function to detect if the file exists */$data = Call_user_func ($this->callback, $file); if ($this->callback && $data) {if (File_exists ('. '). $data [' path ']) {$info [$key] = $data; Continue }elseif ($this->removetrash) {call_user_func ($this->removetrash, $data);//delete trash according to} }/* Generate save File name */$savename = $this->getsavename ($file); if (false = = $savename) {continue; } else { $file [' savename '] = $savename; }/* Detects and creates subdirectories */$subpath = $this->getsubpath ($file [' name ']); if (false = = = $subpath) {continue; } else {$file [' savepath '] = $this->savepath. $subpath; }/* Strict detection of image files */$ext = Strtolower ($file [' ext ']); if (In_array ($ext, Array (' gif ', ' jpg ', ' jpeg ', ' BMP ', ' png ', ' SWF '))) {$imginfo = getimagesize ($file [' Tmp_name '] ); if (Empty ($imginfo) | | ($ext = = ' gif ' && empty ($imginfo [' bits '])) {$this->error = ' Illegal image file! '; Continue }/* Save the file and record the file that was successfully saved */if ($this->uploader->save ($file, $this->replace)) { unset ($file [' Error '], $file [' tmp_name ']); $info [$key] = $file; } else {$this->error = $this->uploader->geterror (); } } if (Isset ($finfo)) {finfo_close ($finfo); } return empty ($info)? False: $info; }/** * Convert the uploaded file array variable to the correct way * @access private * @param array $files uploaded file variable * @return Array */PRIV Ate function Dealfiles ($files) {$fileArray = array (); $n = 0; foreach ($files as $key = + $file) {if (Is_array ($file [' name '])) {$keys = Array_keys ($fi Le); $count = count ($file [' name ']); for ($i =0; $i < $count; $i + +) {$fileArray [$n] [' key '] = $key; foreach ($keys as $_key) {$fileArray [$n][$_key] = $file [$_key][$i]; } $n + +; }}else{$fileArray = $files; Break }} return $fileArray; }
is not the problem here?
/* Detect and upload files individually */
$info = Array ();
if (function_exists (' Finfo_open ')) {
$finfo = Finfo_open (Fileinfo_mime_type);
}
Information processing for an array of uploaded files
$files = $this->dealfiles ($files);
foreach ($files as $key = = $file) {
if (!isset ($file [' key ')]) $file [' key '] = $key;
/* Get file type by extension to solve the problem of returning file type errors in the Flash upload $files array */
if (Isset ($finfo)) {
$file [' type '] = Finfo_file ($finfo, $file [' tmp_name ']);
}