Je réception des fichiers (images) téléchargés avec l'Ajax dans mon script PHP et ont eu à travailler en utilisant ceci:en utilisant php: // entrée et file_put_contents
$input = fopen("php://input", "r");
file_put_contents('image.jpg', $input);
Il est évident que je vais nettoyer l'entrée avant cette opération .
Une chose que je voulais vérifier était la taille du fichier avant de créer le nouveau fichier, comme suit:
$input = fopen("php://input", "r");
$temp = tmpfile();
$realsize = stream_copy_to_stream($input, $temp);
if ($realsize === $_SERVER["CONTENT_LENGTH"]) {
file_put_contents('image.jpg', $temp);
}
Et cela ne fonctionne pas. Le fichier est créé, mais il a une taille de 0 octet, donc le contenu n'est pas mis dans le fichier. Je ne suis pas très familier avec l'utilisation des flux, mais je ne vois pas pourquoi cela ne devrait pas fonctionner, alors je me tourne vers vous pour obtenir de l'aide. Merci d'avance!
Comment téléchargez-vous exactement dans le navigateur Web? Normalement, vous souhaitez utiliser l'encodage de formulaire 'multipart/form-data', puis récupérer le fichier téléchargé par' $ _FILES'. Avec 'php: // input', vous indiquez que le fichier doit couvrir le corps de la requête ENTIER. Cela suggère que vous utilisez une approche propriétaire pour télécharger le fichier dans webbrowser. Une applet personnalisée peut-être? – BalusC
Je suis en train de lire la collection 'files' de l'élément' ', et d'envoyer simplement le' file' via la méthode XHR 'send()'. Il n'y a pas de '
Veuillez activer le rapport d'erreurs et les erreurs d'affichage. – NikiC