2015-06-04 1 views
1

Так что я пытаюсь создать php на веб-хосте, чтобы клиент мог загружать файлы в веб-хостинг, а затем использовать хост ftp_put для загрузки файла на другой ftp-сервер. Для загрузки файла используется следующая функция.Ошибка ftp_put() не удалось открыть поток: нет такого файла или каталога

//upload ftp 
    function ftp_upload($conn, $vid_name, $video){ 
    //get tmp file 
    $file_tmp_name = $video['tmp_name']; 
    echo $file_tmp_name; 

    //combine name with extension name 
    $server_file_name = $vid_name . "." .  pathinfo($video['name'],PATHINFO_EXTENSION); 

      //upload video 
     $upload = ftp_put($conn, $server_file_name, $file_tmp_name , FTP_BINARY); 
    return $upload; 

} 

Однако он продолжает получать Сообщ ошибки, Предупреждение: ftp_put (/ TMP/phpKOtNWK) [function.ftp-Put]: не удалось открыть поток: Нет такого файла или директор.

Итак, я пошел в диспетчер файлов в веб-хосте под моим поддоменом, нет такого каталога с именем tmp, и у меня нет привилегии для ввода корневого каталога для веб-хостинга.

ценим за помощь.

+0

Откуда появляется '$ video ['tmp_name']'? – arkascha

+0

Во-первых, я бы подтвердил, что PHP считает, что файл был загружен успешно, проверив индекс 'error' в' $ video'. Если PHP сумел написать его, я бы ожидал, что он сможет его прочитать. В настоящее время это похоже на то, что файл был перемещен до вызова этой функции. –

+0

$ video = $ _FILES ['file']; –

ответ

0

Итак, благодаря советам Twisty 23 и Jon Stirling, я решил проблему. К сожалению, никто не ответил (все комментарии), что заставляет меня оставить это нерешенным, поэтому я просто отвечу сам. Это код, который я использовал в начале перенаправлять

//store video information into session 
if(count($_POST) >0){   
    $_SESSION['vid_name'] = $_POST['vid_name']; 
    $_SESSION['video'] = $_FILES['video']; 

    //move tmp file to permanent location temp folder 
    move_uploaded_file($_FILES['video']['tmp_name'], "./temp/" . $_POST['vid_name'] . ".tmp"); 

    //change tmp location to temp folder 
    $_SESSION['video']['tmp_name'] = "./temp/" . $_POST['vid_name'] . ".tmp"; 

    //redirect 
    header("Location: " . $_SERVER['REQUEST_URI']); 
    die(); 

} 

и тогда мне не нужно ничего менять на функции ftp_upload, я могу использовать $ _SESSION [ «видео»] [ «tmp_name»] сразу ,

 Смежные вопросы

  • Нет связанных вопросов^_^