<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 файл загружается нормально:
#/bin/bash # файл на локальном компьютере: FILE=~/data.txt # загрузчик на сервере: REMOTE_SITE=http/мой_сайт/upload.php echo "отправляем файл $FILE на удаленный ресурс $REMOTE_SITE" curl -X POST -F "filename=@$FILE" $REMOTE_SITE
Прочитал мануал по pycurl.
Загрузчик на python:
import pycurl c = pycurl.Curl() c.setopt(c.URL, 'http://мой_сайт/upload.php') c.setopt(c.HTTPPOST, [ ('fileupload', ( # upload the contents of this file c.FORM_FILE, __file__, c.FORM_FILENAME, '/data.txt', )), ]) c.perform() c.close()
Аналогично, как в примере http://pycurl.io/docs/latest/quickstart.html#file-upload
Но файл не закачивается. Выдает сообщение “Error loading file” (из upload.php).
Вывожу _FILES, - он пустой, т.е загрузка не происходит.
В чем может быть ошибка? Права доступа выставлены.
То-же самое, (не закачивается) и на локальный сервер.
Версии:
python 2.7
python-pycurl 7.19.0-5
Прошу помочь, спасибо.
/мой_сайт/upload.php