В первом случае stuff
содержит мусор. strcat
требует, чтобы и пункт назначения, и источник содержали правильные строки с нулевым завершением.
strcat(stuff, "hi ");
сканирует stuff
для завершающего символа '\0'
, где он начнет копирование "hi "
. Если он не найдет его, он сработает с конца массива, и могут произойти сколь угодно плохие вещи (т. Е. Поведение не определено).
Один из способов избежать проблемы заключается в следующем:
char stuff[100];
stuff[0] = '\0'; /* ensures stuff contains a valid string */
strcat(stuff, "hi ");
strcat(stuff, "there");
Или вы можете инициализировать stuff
пустую строку:
char stuff[100] = "";
, которая заполнит все 100 байт stuff
нулями (возможно, увеличенная ясность стоит любой незначительной проблемы с производительностью).
Назначением файла move_uploaded_file должен быть путь к файлу, а не URL. Чтобы уточнить это, у вашего веб-сервера есть указанная папка в файловой системе, установленная как веб-корень. Это может быть что-то вроде '/ var / www'. Это означает, что когда вы переходите на « http: // localhost / », он ищет файл, например «/var/www/index.php» или «/var/www/index.php».
пункт назначения может быть абсолютным путем или относительным, поэтому вы можете указать «synt_study_material / student_admin /», и это может быть то же самое, что и «/ var / www / синтез_study_material / student_admin /» (в зависимости от вашего веб-корня и где move_uploaded_file называется из). Обратите внимание, что вы можете использовать dirname(__FILE__)
, чтобы получить путь к текущему файлу php. Также обратите внимание, что move_uploaded_file не будет создавать каталоги для вас, если они не существуют.
Я предлагаю начать с простого примера, такого как Назначением файла move_uploaded_file должен быть путь к файлу, а не URL. Чтобы уточнить это, у вашего веб-сервера есть указанная папка в файловой системе, установленная как веб-корень. Это может быть что-то вроде '/ var / www'. Это означает, что когда вы переходите на « http: // localhost / », он ищет файл, например «/var/www/index.php» или «/var/www/index.php». пункт назначения может быть абсолютным путем или относительным, поэтому вы можете указать «synt_study_material / student_admin /», и это может быть то же самое, что и «/ var / www / синтез_study_material / student_admin /» (в зависимости от вашего веб-корня и где move_uploaded_file называется из). Обратите внимание, что вы можете использовать [110], чтобы получить путь к текущему файлу php. Также обратите внимание, что move_uploaded_file не будет создавать каталоги для вас, если они не существуют. Я предлагаю начать с простого примера, такого как [111], чтобы увидеть, загружается ли что-нибудь, и внести в него изменения. move_uploaded_file(
, чтобы увидеть, загружается ли что-нибудь, и внести в него изменения.