У меня есть домашний FTP-сервер. Я сделал для этого небольшой загрузчик файлов.
index.php:
<html>
<body>
<form enctype = "multipart/form-data" action = "upload_file.php" method = "POST">
<input type = "hidden" name = "MAX_FILE_SIZE" value = "100000" />
Choose a file to upload: <input name = "uploadedfile" type = "file" /><br />
<input type = "submit" value = "Upload File" />
</form>
</body>
</html>
upload_file.php:
<?php
$ftp_server = "192.168.0.11";
$ftp_username = "";
$ftp_password = "";
// setup of connection
$conn_id = ftp_connect($ftp_server) or die("Pogreska tijekom spajanja.");
// login
if (@ftp_login($conn_id, $ftp_username, $ftp_password))
{
echo "Spojen kao $ftp_username@$ftp_server\n";
}
else
{
echo "Pogreska tijekom spajanja $ftp_username\n";
}
$file = $_FILES["uploadedfile"]["name"];
$remote_file_path = "/KUCNI_FTP-506D-ADD5/".$file;
ftp_put($conn_id, $remote_file_path, $_FILES["uploadedfile"]["tmp_name"], FTP_ASCII);
echo "\n\nconnection closed";
?>
И я получаю такую ошибку:
Warning: ftp_put(): Filename cannot be empty in C:\xampp\htdocs\ftp\upload_file.php on line 22
Пытался исправить, но не работает. Помогите, пожалуйста. РЕДАКТИРОВАТЬ (и извините за немного хорватского ...)
Почему вы подавляете ошибки здесь: @ftp_login? Ftp_login возвращает истину или ложь. Каких ошибок вы пытаетесь избежать?
Где ты это видишь?
Я пытаюсь избежать «Предупреждение: ftp_put (): имя файла не может быть пустым в C: \ xampp \ htdocs \ ftp \ upload_file.php в строке 22».
Ниже else у вас есть одна строка, начинающаяся с $ file, а другая с ftp_put. Если вы подавите предупреждение о том, что имя файла не может быть пустым, вы действительно удивлены, что код не работает?
Вы даже проверяли, получаете ли вы какое-либо значение в $_FILES["uploadedfile"]["name"]?
Нет, я не понимаю ценностей.
Какой браузер вы используете?
Я использую Google Chrome.






Взгляните на MAX_FILE_SIZE, этот вариант часто игнорируется.
Убедитесь, что файл, который вы пытаетесь загрузить, находится в пределах того, что вы определили ранее.
Почему вы используете name в одном месте и tmp_name в другом?