Reputation: 565
I am currently using the following code to upload images to an ftp server:
<input name="userfile" type="file" size="50">
...
$filep=$_FILES['userfile']['tmp_name'];
$name=$_FILES['userfile']['name'];
$upload = ftp_put($conn_id, $paths.'/'.$name, $filep, FTP_BINARY);
This works fine except that it only uploads one image.
Any help with multiple (3-4) image uploads pls.
Thanks in advance
Upvotes: 0
Views: 7728
Reputation: 13545
you should upload files async one by one :)
HTML :
<input name="userfile[]" type="file" size="50" />
<input name="userfile[]" type="file" size="50" />
<input name="userfile[]" type="file" size="50" />
PHP :
for( $i = 0 ; $i < count( $_FILES['userfile'] ) ; $i++ )
{
$filep = $_FILES['userfile']['tmp_name'][$i];
$name = $_FILES['userfile']['name'][$i];
$upload = ftp_put( $conn_id , $paths . '/' . $name , $filep , FTP_BINARY );
}
Upvotes: 1
Reputation: 3805
Here's one I had used. All the image fields have the same name
property value of files
<input type="file" name="files[]" class="files" multiple />
can be used for html5, or add multiple of this line for non-html5. I used jquery for my uploader, but you can just have multiple upload fields visible instead.
Obviously you can change my code to use your ftp code, but here's another way too.
$files = array();
$allowed_filetypes = array('.jpg','.jpeg','.gif','.bmp','.png','.tif');
$max_filesize = 1524288;
$upload_path = 'images/image_uploads/';
for ($i = 0; $i < count($_FILES['files']['name']); $i++){
if($_FILES['files']['name'][$i] != "") {
$filename = $_FILES['files']['name'][$i];
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
$ext = strtolower($ext);
if(!in_array($ext,$allowed_filetypes))
die("The file you attempted to upload ($filename) is not allowed.");
if(filesize($_FILES['files']['tmp_name'][$i]) > $max_filesize)
die("The file you attempted to upload ($filename) is too large.");
if(!is_writable($upload_path))
die("You cannot upload to the specified directory, please CHMOD it to 777.");
$ran = rand();
$filename = $ran.$ext;
if(move_uploaded_file($_FILES['files']['tmp_name'][$i],$upload_path.$filename)) {
$result = mysql_query("Insert Into image_uploads_images (upload_id, image, original_name) Values ('$id', '$filename', '".$_FILES['files']['name'][$i]."');");
if($result){
array_push($files, "http://www.site.com/images/image_uploads/$filename => ".$_FILES['files']['name'][$i]);
}else{
echo "<p style=\"color:#cc3333;\">Unable to upload ".$_FILES['files']['name'][$i]."</p>";
}
}else{
echo "<p style=\"color:#cc3333;\">Unable to upload ".$_FILES['files']['name'][$i]."</p>";
}
}
}
Upvotes: 1
Reputation: 24276
<input name="userfile[]" type="file" size="50" />
<input name="userfile[]" type="file" size="50" />
<input name="userfile[]" type="file" size="50" />
for($i = 0; $i < count($_FILES['userfile]); $i++) {
$filep=$_FILES['userfile']['tmp_name'][$i];
$name=$_FILES['userfile']['name'][$i];
$upload = ftp_put($conn_id, $paths.'/'.$name, $filep, FTP_BINARY);
}
Upvotes: 3