Je souhaite configurer un service HTTP simple (utilisant PHP) pour recevoir des fichiers d'un autre ordinateur à l'aide de Linux curl et Windows Powershell. J'ai lu des sources Internet, notamment PHP, je ne peux pas télécharger de fichiers sur le serveur?? Utilisez cURL pour télécharger les données POST avec le fichier. Ces messages m'ont aidé à résoudre le problème des paramètres, mais pas tous.
Voici mon code (voir ici)
<?php $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded."; } else { echo "Sorry, there was an error uploading your file."; } ?>
C'est la commande que j'ai utilisée et j'ai re?u la réponse d'erreur.
# bash curl -X POST -F "id=fileToUpload" -F "fileToUpload=@null.txt" http://127.0.0.1/upload.php
Voici /var/apache2/error.log
[Sun Aug 27 05:13:13.392185 2023] [php7:warn] [pid 77733] [client 127.0.0.1:54732] PHP Warning: move_uploaded_file(uploads/null.txt): failed to open stream: No such file or directory in /var/www/html/upload.php on line 5 [Sun Aug 27 05:13:13.392251 2023] [php7:warn] [pid 77733] [client 127.0.0.1:54732] PHP Warning: move_uploaded_file(): Unable to move '/tmp/phpynhUuv' to 'uploads/null.txt' in /var/www/html/upload.php on line 5
Statut du téléchargement
$ ll > total 8 > drwxr-xr-x 2 root root 4096 Aug 27 05:08 html > drwxrwxrwx 2 www-data www-data 4096 Jun 2 22:38 uploads
Quelqu'un peut-il me dire quel est le problème avec mon code?? Tout avis serait grandement apprécié.
P.S. Merci à ADyson et Hanshenrik pour leurs généreux conseils. Ce problème était d? à deux choses?: (1) l'utilisation de -F comme commande curl, (2) la correction du chemin PHP pour l'adapter à la configuration de mon dossier.
-d
以 application/x-www-form-urlencoded
格式發(fā)送數(shù)據(jù),PHP 自動(dòng)將其解析為 $_POST
超全局變量,而您的代碼嘗試從 $_FILES
超全局變量讀取上傳的文件,該文件據(jù)我所知,PHP僅解析multipart/form-data
-requests,并且要使curl發(fā)送multipart/form-data
請(qǐng)求,請(qǐng)使用-F
curl -F @null.txt http://127.0.0.1/upload.php