[Как организовать?]Загрузка файлов на сервер посредством URL

Статус
В этой теме нельзя размещать новые ответы.

Axel G

Создатель
Регистрация
30 Мар 2009
Сообщения
30
Реакции
2
Доброго времени суток всем, собственно вопрос, как организовать мультизагрузку по ссылкам? Формочку то сделать сделал, а вот upload_url.php вызывает затруднения, а точнее не могу понять как и что прописать, с пшп пока поверхностно знаком, гугл мучал, но ничего толкового не нашел, кроме одной статейки Для просмотра ссылки Войди или Зарегистрируйся граждане знающие подсобите советом.

HTML:
<form action="upload_url.php" method="post" enctype="multipart/form-data">

<input type="text" class="url" size="50" name="userfile0" /><br />
<input type="text" class="url" size="50" name="userfile1" /><br />
<input type="text" class="url" size="50" name="userfile2" /><br />
<input type="text" class="url" size="50" name="userfile3" /><br />
<input type="text" class="url" size="50" name="userfile4" /><br />
<input type="text" class="url" size="50" name="userfile5" /><br />
<input type="text" class="url" size="50" name="userfile6" /><br />
<input type="text" class="url" size="50" name="userfile7" /><br />
<input type="text" class="url" size="50" name="userfile8" /><br />
<input type="text" class="url" size="50" name="userfile9" /><br />

<input type="reset" value="Отменить"> <input type="submit" value="Загрузить">

</form>

PHP:
<?php
#
?>

HTML:
<form action="upload.php" method="post" enctype="multipart/form-data">

<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />

<input type="reset" value="Отменить"> <input type="submit" value="Загрузить">

</form>

PHP:
<?php

$tempfile=$_FILES['userfile']['tmp_name']; // имя временного файла
if (is_uploaded_file($tempfile)){
	if (!copy($tempfile,"./images/".$_FILES['userfile']['name'])){
		echo "Не удалось скопировать файл";
	} else {
		echo "Файл {$_FILES['userfile']['name']}
		({$_FILES['userfile']['size']}байт) загружен успешно";
	}
} else if (!empty($_FILES['userfile']['name'])){
	echo "Не удалось загрузить файл {$_FILES['userfile']['name']}";
}

?>

Назначение скрипта: быстрый перелив скриншотов с умирающих фотохостингов (jpg, jpeg, gif, png).

Заранее благодарю за помощь!
 
Скрипт php правильный, только нужно "перебрать" все файлы
PHP:
<?php

foreach($_FILES['userfile'] as $newfile){
	$tempfile=$newfile['tmp_name']; // имя временного файла
	if (is_uploaded_file($tempfile)){
		if (!copy($tempfile,"./images/".$_FILES['userfile']['name'])){
			echo "Не удалось скопировать файл";
		} else {
			echo "Файл {$_FILES['userfile']['name']}
			({$_FILES['userfile']['size']}байт) загружен успешно";
		}
	} else if (!empty($_FILES['userfile']['name'])){
		echo "Не удалось загрузить файл {$_FILES['userfile']['name']}";
	}
}

?>
 
Советую воспользоваться jquery.uploadify-v2.1.0. Хорошая вешь, множественная загрузка, отображение размера загрузаемых файлов, предпросмотр.
 
Это как?? Я уж и не надеялся на ответ.

HTML:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="file" class="url" size="50" name="userfile[]" /><br />
<input type="reset" value="Отменить"> <input type="submit" value="Загрузить">
</form>

+

PHP:
<?php 

foreach($_FILES['userfile'] as $newfile){ 
    $tempfile=$newfile['tmp_name']; // имя временного файла 
    if (is_uploaded_file($tempfile)){ 
        if (!copy($tempfile,"./images/".$_FILES['userfile']['name'])){ 
            echo "Не удалось скопировать файл"; 
        } else { 
            echo "Файл {$_FILES['userfile']['name']} 
            ({$_FILES['userfile']['size']}байт) загружен успешно"; 
        } 
    } else if (!empty($_FILES['userfile']['name'])){ 
        echo "Не удалось загрузить файл {$_FILES['userfile']['name']}"; 
    } 
} 

?>
 
geforse77, а со ссылками то как быть??

Добавлено через 49 минут
даже наверное так вопрос задам, загрузка файла на сервер через ссылку (URL).
 
diavolic, ваш вариант не работает
 
Axel G, проблема в том, что не совсем понятно что именно вам надо. Если просто пройтись по списку ссылок, получить картинки и сохранить где-то на диске, то будет достаточно 10 строк
PHP:
$path_to_save = '/usr/images';
$userfile = $_POST['userfile'];

  foreach ($userfile as $k =>$v)
  {
  	if ($v != '')
  	{
  	  $tmp = file_get_contents($v);
  	  preg_match('/.*\/(.*)/i', $v, $filename);
  	  file_put_contents($path_to_save.$filename[1], $tmp);
  	}
  }
Ессно, это самая простая реализация - без доп проверок(на существование файла с таким именем, етц)
PS: используется 1 форма из вашего 1го поста, только везде name="userfile[]"
 
Alix, ваш вариант выдают ошибку:

Warning: Invalid argument supplied for foreach() in Z:\home\test.ru\up_url.php on line 4

up_url.htm
HTML:
<form action="up_url.php" method="post" enctype="multipart/form-data">
<input type="text" class="url" size="50" name="userfile[]" /><br />
<input type="text" class="url" size="50" name="userfile[]" /><br />
<input type="text" class="url" size="50" name="userfile[]" /><br />
<input type="text" class="url" size="50" name="userfile[]" /><br />
<input type="text" class="url" size="50" name="userfile[]" /><br />
<input type="text" class="url" size="50" name="userfile[]" /><br />
<input type="text" class="url" size="50" name="userfile[]" /><br />
<input type="text" class="url" size="50" name="userfile[]" /><br />
<input type="text" class="url" size="50" name="userfile[]" /><br />
<input type="text" class="url" size="50" name="userfile[]" /><br />
<input type="reset" value="Отменить"> <input type="submit" value="Загрузить">
</form>

up_url.php
PHP:
<?php

$path_to_save = '/images';
  foreach ($userfile as $k =>$v)
  {
      if ($v != '')
      {
        $tmp = file_get_contents($v);
        preg_match('/.*\/(.*)/i', $v, $filename);
        file_put_contents($path_to_save.$filename[1], $tmp);
      }
  }

?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху