20_LESI Posted December 25, 2009 at 04:36 AM Report Share #302338 Posted December 25, 2009 at 04:36 AM Boas! Estou a iniciar-me no php, e tenho seguido os tutoriais da w3schools. Encalhei no upload de ficheiros... Eis o código: teste.html <html> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"> <label for="file">Filename:</label> <input type="file" name="file" id="file" /> <br /> <input type="submit" name="submit" value="Submeter" /> </form> </body> </html> upload.php <html> <body> <?php if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["file"]["tmp_name"]; } ?> </body> </html> Segundo o tutorial, ele deveria fazer o upload para o servidor. No meu caso, para a pasta do MAMP: By using the global PHP $_FILES array you can upload files from a client computer to the remote server. No entanto não é efectuado nenhum upload... Alguém me sabe dizer o que pode estar a acontecer? Link to comment Share on other sites More sharing options...
Hipnoted Posted December 25, 2009 at 12:12 PM Report Share #302344 Posted December 25, 2009 at 12:12 PM Tens de mover o ficheiro da localização temporária para a localização onde pretendes que ele fique. Não tens definido isso no teu código, apenas mostras as informações! No teu caso, tens de usar o: move_uploaded_file($_FILES['file']['tmp_name'], $target) em que $target é o caminho absoluto do teu destino. "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência" Link to comment Share on other sites More sharing options...
20_LESI Posted December 25, 2009 at 01:47 PM Author Report Share #302350 Posted December 25, 2009 at 01:47 PM Mas com este código não era suposto o ficheiro ficar temporariamente numa pasta do MAMP? No teu caso, tens de usar o: move_uploaded_file($_FILES['file']['tmp_name'], $target) em que $target é o caminho absoluto do teu destino. Também já testei dessa forma. Utilizei o seguinte código: <html> <body> <?php if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Invalid file"; } ?> </body> </html> Obtenho o seguinte erro: Warning: move_uploaded_file(upload/alert.red.gif) [function.move-uploaded-file]: failed to open stream: No such file or directory in /Users/binte/Sites/upload_file3.php on line 28Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/Applications/MAMP/tmp/php/phpylx1Cm' to 'upload/alert.red.gif' in /Users/binte/Sites/upload_file3.php on line 28 Link to comment Share on other sites More sharing options...
Hipnoted Posted December 25, 2009 at 02:30 PM Report Share #302355 Posted December 25, 2009 at 02:30 PM Como já disse, tens de indicar caminhos absolutos. Tu estas a dar um caminho relativo, o de "upload"... Se o teu server estiver em Windows tens de indicar algo do género: "file:///C:/...Caminho até.../uploads" Se for em linux algo do género também com caminhos absolutos e não esquecer de dar permissões de escrita à pasta. "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência" Link to comment Share on other sites More sharing options...
20_LESI Posted December 25, 2009 at 10:57 PM Author Report Share #302419 Posted December 25, 2009 at 10:57 PM Era isso! E não só... Tinha de ter a pasta criada! Muito obrigado! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now