Добрый день, я слежу за учебником и очень усердно работал над тем, чтобы этот скрипт работал, мне удалось исправить много вещей, однако одна постоянная проблема, которую я получаю, такова:
No such file or directory in /home/xxxxxxx/public_html/regForm.php on line 93 
То, что я пытаюсь понять, – это заставить пользователя загружать профиль pic на мой живой сервер / сайт при регистрации, вот часть моей формы и код ниже:
Я был бы очень признателен, если бы более опытный пользователь мог дать ему сканирование и посоветовать, где я ошибаюсь, чем раньше
HTML-форма
  <form ENCTYPE="multipart/form-data" name="registration-form" id="regForm" method="post" action="regForm.php"> : : Upload Picture: <INPUT NAME="file_up" TYPE="file"> <input type="submit" value="Register" name="register" class="buttono" /> </form> 
UPLOAD SCRIPT
 $file_upload="true"; $file_up_size=$_FILES['file_up']['size']; echo $_FILES['file_up']['name']; if ($_FILES['file_up']['size']>250000){ $msg=$msg."Your uploaded file size is more than 250KB so please reduce the file size and then upload.<BR>"; $file_upload="false"; } if (!($_FILES['file_up']['type'] =="image/jpeg" OR $_FILES['file_up']['type'] =="image/gif")) { $msg=$msg."Your uploaded file must be of JPG or GIF. Other file types are not allowed<BR>"; $file_upload="false"; } $file_name=$_FILES['file_up']['name']; if($file_upload=="true"){ $ftp_server = "xxxxxx"; $ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server"); $ftp_username='xxxxxx'; $ftp_userpass='xxxxxx'; $login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass); $file = $file_name; // upload file if (ftp_put($ftp_conn, "public_html/img/userPics", $file, FTP_ASCII)) //here is the problem with the path I suspect { echo "Successfully uploaded $file."; } else { echo "Error uploading $file."; } // close connection ftp_close($ftp_conn); } 
        
    При работе с изображениями вам необходимо использовать двоичный формат.
FTP_BINARY вместо FTP_ASCII.
Согласно руководству:
Убедитесь, что путь правильный. Это может отличаться от разных серверов.
Здесь вам также нужен трейлинг-косая черта:
 public_html/img/userPics/ ^ 
В противном случае ваша система будет интерпретировать это как:
  userPicsIMAGE.JPG а не предполагаемый userPics/IMAGE.JPG 
Тем не менее, вам может понадобиться поиграть с самой дорогой. FTP немного сложнее.
То есть:
/home/xxxxxxx/public_html/userPics/ img/userPics/ ../img/userPics/ В зависимости от области выполнения файла.
 Корень> ftp_file.php  
 -img  
    -userPics
Папка также должна иметь соответствующие разрешения для записи.
Обычно 755.
Используйте отчет об ошибках, если ваша система еще не настроена для обнаружения и отображения ошибок / уведомлений:
Пример из руководства FTP:
 <?php ftp_chdir($conn, '/www/site/'); ftp_put($conn,'file.html', 'c:/wamp/www/site/file.html', FTP_BINARY ); ?> 
Другое дело, однако, использование «истинного» и «ложного». Вы, скорее всего, хотите проверить истинность
 $file_upload=true; 
  а не строковый литерал $file_upload="true"; 
то же самое для
 if($file_upload=="true") 
в
 if($file_upload==true) 
  и для $file_upload="false";  проверить фальшивость 
  to $file_upload=false; 
Прочтите руководство по этому вопросу:
Это самый простой тип. Булевы выражают значение истины. Это может быть TRUE или FALSE.
Проверьте свое FTP-соединение, извлеченное из https://stackoverflow.com/a/3729769/
 try { $con = ftp_connect($server); if (false === $con) { throw new Exception('Unable to connect'); } $loggedIn = ftp_login($con, $username, $password); if (true === $loggedIn) { echo 'Success!'; } else { throw new Exception('Unable to log in'); } print_r(ftp_nlist($con, ".")); ftp_close($con); } catch (Exception $e) { echo "Failure: " . $e->getMessage(); } 
Соглашения об именах:
  Мне также нужно отметить, что в LINUX userPics не совпадает с userpics , если ваше имя папки будет содержать строчные буквы. 
В отличие от Windows, которая нечувствительна к регистру.