На моем сайте есть форма (upload.html):
<html>
<head>
<title>Download file on server</title>
</head>
<body>
<h2><p><b> Form for download files </b></p></h2>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename"><br>
<input type="submit" value="Загрузить"><br>
</form>
</body>
</html>
Код скрипта обработки этой формы (upload.php)
<html>
<head>
<title>Result file download</title>
</head>
<body>
<?php
if($_FILES["filename"]["size"] > 1024*3*1024)
{
echo ("Размер файла превышает три мегабайта");
exit;
}
// Проверяем загружен ли файл
if(is_uploaded_file($_FILES["filename"]["tmp_name"]))
{
// Если файл загружен успешно, перемещаем его
// из временной директории в конечную
move_uploaded_file($_FILES["filename"]["tmp_name"], "./".$_FILES["filename"]["name"]);
echo("File ");
echo $_FILES["filename"]["name"];
echo(" loaded successfully!");
} else {
echo("Error loading file");
}
?>
</body>
</html>
Через браузер файлы загружаются, но мне необходимо загружать их через bash. Пробую с помощью curl. Прочитал мануал, делаю такой POST запрос:
#!/bin/bash
# файл на локальном компьютере:
FILE=~/rwf/data.txt
# загрузчик на сервере:
REMOTE_SITE=http://мой_сайт/upload.php
echo "отправляем файл $FILE на удаленный ресурс $REMOTE_SITE"
curl -X POST -d @$FILE $REMOTE_SITE
В чем может быть ошибка? Авторизации на сайте не требуется, права доступа выставлены. То-же самое, (не закачивается) и для локального сервера. Как можно оттрассировать закачку? Прошу помочь, спасибо.