- Форма за ъплоуд на снимки
WT форуми -> PHP MySQL ASP.NET -> Форма за ъплоуд на снимки
Създайте нова тема Напишете отговор 
Автор Съобщение
kini
Нов
Нов

Регистриран на: 01/05/2010 12:36 pm

Support: 2
Bonus: 4
Мнения: 140
Мнение 18/04/2018 6:10 pm     Форма за ъплоуд на снимки Отговорете с цитат


Здравейте,

Имам въпрос за форма за ъплоуд или по-точно какво трябва да се добави, за да мога да качвам едновременно например 5 броя изображения от 5 добавени полета.

<input type="file" name="file1" id="file1">
<input type="file" name="file2" id="file2"> и т.н


В момента извличам само един файл с $filename

Формата е следната:


if($_SERVER["REQUEST_METHOD"] == "POST"){
$image = $_FILES["file"]["name"];
$uploadedfile = $_FILES['file']['tmp_name'];

if ($image){
  $filename = stripslashes($_FILES['file']['name']);
 
  $extension = getExtension($filename);
  $extension = strtolower($extension);
 
if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")){
 
 
                                                                 $change = 'Непозволен формат!';
  $errors = 1;
} else {
$size=filesize($_FILES['file']['tmp_name']);
 
if ($size > MAX_SIZE*1024){
$change = 'Снимката е прекалено голяма!';
$errors = 1;
}


if($extension=="jpg" || $extension=="jpeg" ){
$uploadedfile = $_FILES['file']['tmp_name'];
$src = imagecreatefromjpeg($uploadedfile);

} else if($extension=="png"){
$uploadedfile = $_FILES['file']['tmp_name'];
$src = imagecreatefrompng($uploadedfile);
} else {
$src = imagecreatefromgif($uploadedfile);
}

echo $scr;

list($width,$height)=getimagesize($uploadedfile);

$newwidth=128;
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth,$newheight);


$newwidth1=48;
$newheight1=($height/$width)*$newwidth1;
$tmp1=imagecreatetruecolor($newwidth1,$newheight1);

imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
imagecopyresampled($tmp1,$src,0,0,0,0,$newwidth1,$newheight1,$width,$height);

$n = strtolower($userdata['email'])."_".mktime().".".$extension;

$filename = "uploads/".$n;
$filename1 = "uploads/thumb/thumb_".$n;

imagejpeg($tmp,$filename,100);
imagejpeg($tmp1,$filename1,100);

imagedestroy($src);
imagedestroy($tmp);
imagedestroy($tmp1);

if($n != "default.jpg"){
unlink("uploads/thumb/thumb_".$n."");
unlink("uploads/".$n."");
}



}
}
}
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 119
Bonus: 231
Мнения: 3075
Мнение 18/04/2018 8:00 pm      Отговорете с цитат


Ето ти пример:
PHP code:

extract($_POST);
$error=array();
$extension=array("jpeg","jpg","png","gif");
foreach($_FILES["files"]["tmp_name"] as $key=>$tmp_name)
{
$file_name=$_FILES["files"]["name"][$key];
$file_tmp=$_FILES["files"]["tmp_name"][$key];
$ext=pathinfo($file_name,PATHINFO_EXTENSION);
if(in_array($ext,$extension))
{
if(!file_exists("photo_gallery/".$txtGalleryName."/".$file_name))
{
move_uploaded_file($file_tmp=$_FILES["files"]["tmp_name"][$key],"photo_gallery/".$txtGalleryName."/".$file_name);
}
else
{
$filename=basename($file_name,$ext);
$newFileName=$filename.time().".".$ext;
move_uploaded_file($file_tmp=$_FILES["files"]["tmp_name"][$key],"photo_gallery/".$txtGalleryName."/".$newFileName);
}
}
else
{
array_push($error,"$file_name, ");
}
}


HTML code:

<form action="create_photo_gallery.php" method="post" enctype="multipart/form-data">
<table width="100%">
<tr>
<td>Select Photo (one or multiple):</td>
<td><input type="file" name="files[]" multiple/></td>
</tr>
<tr>
<td colspan="2" align="center">Note: Supported image format: .jpeg, .jpg, .png, .gif</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Create Gallery" id="selectedButton"/></td>
</tr>
</table>
</form>


https://stackoverflow.com/questions/24895170/multiple-image-upload-php-form-with-one-input
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
kini
Нов
Нов

Регистриран на: 01/05/2010 12:36 pm

Support: 2
Bonus: 4
Мнения: 140
Мнение 19/04/2018 12:38 am      Отговорете с цитат


dakata__92 написа:
Ето ти пример:
PHP code:

extract($_POST);
$error=array();
$extension=array("jpeg","jpg","png","gif");
foreach($_FILES["files"]["tmp_name"] as $key=>$tmp_name)
{
$file_name=$_FILES["files"]["name"][$key];
$file_tmp=$_FILES["files"]["tmp_name"][$key];
$ext=pathinfo($file_name,PATHINFO_EXTENSION);
if(in_array($ext,$extension))
{
if(!file_exists("photo_gallery/".$txtGalleryName."/".$file_name))
{
move_uploaded_file($file_tmp=$_FILES["files"]["tmp_name"][$key],"photo_gallery/".$txtGalleryName."/".$file_name);
}
else
{
$filename=basename($file_name,$ext);
$newFileName=$filename.time().".".$ext;
move_uploaded_file($file_tmp=$_FILES["files"]["tmp_name"][$key],"photo_gallery/".$txtGalleryName."/".$newFileName);
}
}
else
{
array_push($error,"$file_name, ");
}
}


HTML code:

<form action="create_photo_gallery.php" method="post" enctype="multipart/form-data">
<table width="100%">
<tr>
<td>Select Photo (one or multiple):</td>
<td><input type="file" name="files[]" multiple/></td>
</tr>
<tr>
<td colspan="2" align="center">Note: Supported image format: .jpeg, .jpg, .png, .gif</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Create Gallery" id="selectedButton"/></td>
</tr>
</table>
</form>


https://stackoverflow.com/questions/24895170/multiple-image-upload-php-form-with-one-input


Пробван е подобен принцип, не ми върши работа.

Имам 5 броя колони в таблицата, като в първата слагам главното изображение, точно за това търся по-добър начин.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1741
Мнение 19/04/2018 9:10 am      Отговорете с цитат


Ако съм те разбрал правилно искаш да качваш пет снимки от пет инпут полета в пет колони в базата данни Smile .

Ще ти дам прост пример и ще се опитам да обясня, а ти ще си го донапишеш.

Първо name трябва да е масив, в случая files[]. Той е един и същ за всяко поле.

PHP code:

<form action="upload.php" method="post" enctype="multipart/form-data">
Send these files:<br />
<input name="files[]" type="file" /><br />
<input name="files[]" type="file" /><br />
<input type="submit" value="Send files" />
</form>


Да приемем че качваш две снимки с имена image-1.jpg и image-2.jpg

Масивът files[] ще съдържа цялата информация за тях и ще можеш да ги достъпваш както всеки масив.

Например

$_FILES['files']['name'][0] съдържа image-1.jpg
$_FILES['files']['name'][1] съдържа image-2.jpg

$_FILES['files']['size'][0] съдържа размера на image-1.jpg
$_FILES['files']['size'][1] съдържа размера на image-2.jpg

$_FILES['files']['tmp_name'][0] съдържа името на първия временен файл
$_FILES['files']['tmp_name'][1] съдържа името на втория временен файл

След като знаеш каквото ти трябва за да достъпиш различните файлове, си правиш проверките и т.н.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 158
Bonus: 315
Мнения: 1475
Мнение 19/04/2018 1:35 pm      Отговорете с цитат


За повече от един файл използвай атрибута multiple в
HTML code:
 <input type=file multiple />


https://stackoverflow.com/questions/1593225/how-to-select-multiple-files-with-input-type-file

Така ще е по-удобно за потребителите, защото от един popup ще могат да изберат всичко наведнъж, а не всеки път да търсят по директории.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
Страница 1 от 1


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети