Я пытаюсь загрузить файл, используя форму html. Метод загрузки осуществляется через FTP на сервер FileZilla. Я успешно загрузил файл, но похоже, что только его расширение и имя файла загружаются. Файл всегда поврежден и не отображает его размер файла при просмотре перенесенного файла в проводнике Windows. Это мой код. Пожалуйста помоги.
include 'Connections/ftpgangconnect.php'; ini_set("upload_max_filesize", "250M"); ini_set("post_max_size", "250M"); if (isset($_POST['upload'])) { $name = $_FILES['myfile'] ['name']; $size = $_FILES['myfile'] ['size']; $type = $_FILES['myfile'] ['type']; $temp = $_FILES['myfile'] ['tmp_name']; $error = $_FILES['myfile'] ['error']; $content = $_FILES['myfile']['content']; $temp = $_FILES['myfile'] ['tmp_name']; $name = $_FILES['myfile']['name']; $dest_file ="/".$name; // upload the file $upload = ftp_nb_put($ftp, $dest_file, $temp, FTP_BINARY); // check upload status if (!$upload) { echo "FTP upload has failed!"; } else { echo "Uploaded $name"; ftp_close($ftp); } }
Проверьте примеры функции ftp_nb_put
. Вы должны называть ftp_nb_continue
в цикле до завершения загрузки:
// upload the file $upload = ftp_nb_put($ftp, $dest_file, $temp, FTP_BINARY); while ($upload == FTP_MOREDATA) { // Continue uploading... $upload = ftp_nb_continue($ftp); }
Хотя, если вам не нужно делать что-либо еще в цикле, его бессмысленно использовать ftp_nb_put
. Просто используйте простой ftp_put
:
$upload = ftp_put($ftp, $dest_file, $temp, FTP_BINARY);