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

Тема в разделе "PHP", создана пользователем Axel G, 22 май 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Axel G

    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).

    Заранее благодарю за помощь!
     
  2. GrizliK

    GrizliK Создатель

    Регистр.:
    4 сен 2009
    Сообщения:
    47
    Симпатии:
    3
    Скрипт 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']}";
        }
    }

    ?>
     
  3. jenya777777

    jenya777777 Создатель

    Регистр.:
    13 май 2010
    Сообщения:
    15
    Симпатии:
    0
    Советую воспользоваться jquery.uploadify-v2.1.0. Хорошая вешь, множественная загрузка, отображение размера загрузаемых файлов, предпросмотр.
     
  4. Axel G

    Axel G Создатель

    Регистр.:
    30 мар 2009
    Сообщения:
    30
    Симпатии:
    2
    Это как?? Я уж и не надеялся на ответ.
     
  5. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    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']}"
        } 


    ?>
     
  6. geforse77

    geforse77 Создатель

    Регистр.:
    28 май 2009
    Сообщения:
    20
    Симпатии:
    1
  7. Axel G

    Axel G Создатель

    Регистр.:
    30 мар 2009
    Сообщения:
    30
    Симпатии:
    2
    geforse77, а со ссылками то как быть??

    Добавлено через 49 минут
    даже наверное так вопрос задам, загрузка файла на сервер через ссылку (URL).
     
  8. Axel G

    Axel G Создатель

    Регистр.:
    30 мар 2009
    Сообщения:
    30
    Симпатии:
    2
    diavolic, ваш вариант не работает
     
  9. Alix

    Alix

    Регистр.:
    27 янв 2008
    Сообщения:
    234
    Симпатии:
    84
    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[]"
     
    Axel G нравится это.
  10. Axel G

    Axel G Создатель

    Регистр.:
    30 мар 2009
    Сообщения:
    30
    Симпатии:
    2
    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);
          }
      }

    ?>
     
Статус темы:
Закрыта.