| |||
Al subir archivo a mi servidor.....!!!! Hola amigos, cuando hago mi funcion en php, sobre subir un archivo de tipo imagen a mi servidor, buscar el archivo y cuando le pongo enviar me muestra la lista de mis archivos que hay alli y sale debajo lo siguiente: Apache/2.0.52 (Win32) mod_ssl/2.0.52 OpenSSL/0.9.7d PHP/5.0.2 Server at pcm3080.dti.supsi.ch Port 80 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\DOCUME~1\danny\LOCALS~1\Temp\phpAE.tmp' to '' in C:\apachefriends\xampp\htdocs\Php\SUPSI\navigator\ moveup.php on line 7 error y este es el codigo moveup.php <?php include ("http://pcm3080.dti.supsi.ch/Php/SUPSI/navigator/demo_rdf/Foto/"); $copiado=move_uploaded_file($uploadfile, $foto_name); print $copiado; if($copiado==false){ print "error"; }else{ print "ok"; } ?> que estoy haciendo de malo??? espero me puedan ayudar saludos |
| |||
Pero de donde sale "$uploadfile" ..y $foto_name? $copiado=move_uploaded_file($uploadfile, $foto_name); print $copiado; ahí no vas a ver nada .. dicha función devuelve un "boolean" TRUE o FALSE .. Deberías usar los arrays superglobales $_FILES para acceder a tus archivos: www.php.net/move_uploaded_file Un saludo, |
| |||
ok, esta variable $uploadfile, viene de mi formulario que cargo anteriormente y se supone que aqui esta almacenado el archuvo y lo que quiero hacer es copiar ese archivo a una carperta y listo nada mas, pero no me sale, segu lo que esta abajo funciona y me dice ok, pero no lo copia, ??? espero me puedan ayudan. <html> ... <input type="file" name="uploadfile"> ... </html> <?php include ("http://pcm3080.dti.supsi.ch/Php/SUPSI/navigator/demo_rdf/Foto/"); $copiado=copy($uploadfile, $uploadfile); if($copiado==false){ print "error"; }else{ print "ok"; } ?> |
| |||
No, ... si tu nombre de tu campo "file" de tu formulario se llama "uploadfile" .. para efectos de copiar el archivo desde el directorio temporal que sube PHP vía HTTP los archivos hacia su destino definitivo es: $uploadfile_tmp_name <-- directorio origen (que apunta a tu servidor y a un nombre temporal que PHP le dá al archivo que subió) $uploadfile_name <-- nombre (sin ruta) original de tu archivo .. Tu tendrás que componer la ruta completa de destino Pero .. NO USES! esa forma de acceso a tus archivos (no es segura) usa los arrays superglobales: $_FILES['uploadfile']['tmp_name'] $_FILES['uploadfile']['name'] Y luego usa move_uploaded_file() en lugar de copy() .. El archivo no se toma "físicamente" desde tu PC (del usuario/cliente) .. para hacer el "copy()" o "move_uploaded_file()". Es el "HTML" vía su campo file y el servidor HTTP el que "suben" el archivo a este .. Una vez allá .. a PHP se le deja en $_FILES una série de propiedades (como el nombre del archivo .. donde quedó en el servidor .. el tamaño, el tipo de archivo ...) para que las uses. http://www.php.net/manual/en/features.file-upload.php (lee la documentación; fijate en los ejemplos). Un saludo, |
| |||
<?php $uploaddir = 'http://pcm3080.dti.supsi.ch/Php/SUPSI/navigator/demo_rdf/Foto/'; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); print $uploadfile; // se encuentra la ruta y el archivo $_FILES['uploadfile']['tmp_name']; $_FILES['uploadfile']['name']; echo '<pre>'; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo "File is valid, and was successfully uploaded.\n"; } else { echo "Possible file upload attack!\n"; } echo 'Here is some more debugging info:'; print_r($_FILES); print "</pre>"; ?> Luego cuando lo ejecuto me sale lo siguiente pero el archivo no se llega almacenar: http://pcm3080.dti.supsi.ch/Php/SUPS...o/DSCN1358.JPG Possible file upload attack! Here is some more debugging info:Array ( [userfile] => Array ( [name] => DSCN1358.JPG [type] => [tmp_name] => [error] => 2 [size] => 0 ) ) espero me ayuden. Gracias. |
| |||
Esa ruta no es correcta: $uploaddir = 'http://pcm3080.dti.supsi.ch/Php/SUPSI/navigator/demo_rdf/Foto/'; debes usar rutas absolutas . .no relativas: Podría ser algo tipo: $uploaddir =$_SERVER['DOCUMENT_ROOT']."/etc ......./"; Con la variable de servidor "DOCUMENT_ROOT" se obtiene la ruta física desde el raiz de ese servidor .. tal vez /var/www/sitio1 (típico de sistemas linux .. ) o para windows algo tipo: c:/nose/tal .... que es donde apunta tu "DocumentRoot" de tu servidor HTTP y ahí empieza a "colgar" tu sitio con tu resto de estructura de directorios que tenga. Por lo demás .. NO te confundas .. $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); $_FILES['userfile'] .... es el nombre que le das a tu campo file de tu formulario HTML .. en tu caso parece que lo llamas "uploadfile" (como no se vé el formulario HTML que usas .. no sé que nombre le das) .. revisa eso y estate pendiente. Un saludo, |
| |||
Este es mi formulario: <form enctype="multipart/form-data" action="ejecu.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> Send this file: <input name="userfile" type="file" /> <input type="submit" value="Send File" /> </form> Aqui enpieza mi archivo php, qe se llama ejecu.php <?php //esta es mi variable que esta en mi formulario $userfile; $_FILES['userfile']['tmp_name']; $_FILES['userfile']['name']; $uploaddir =$_SERVER['DOCUMENT_ROOT']."/Php/SUPSI/navigator/demo_rdf/Foto/"; $uploadfile1 = $uploaddir . basename($_FILES['userfile']['tmp_name']); echo '<pre>'; if (move_uploaded_file($_FILES['uploadfile1']['uploaddir'], $tmp_name)) { echo "File is valid, and was successfully uploaded.\n"; } else { echo "Possible file upload attack!\n"; } echo 'Here is some more debugging info:'; print_r($_FILES); print "</pre>"; ?> Bueno me encuentra la imagen pero no la sube al servidor, ya esta leyendo todo, probando y no sale, ayudenme con esto, les agradezco de antemano. Saludos |
| |||
Cita:
Iniciado por Dannydaniel Este es mi formulario: <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> Hola, he estado haciendo esto mismo hoy. A ver si el problema va a ser el tamaño, que lo tienes limitado a 30.000 bytes, prueba a aumentar este límite. Saludos. |
| |||
No sé si alcanzas a comprender que es $_FILES .. (pregunta si tienes dudas) .. Pero, esto no es correcto: if (move_uploaded_file($_FILES['uploadfile1']['uploaddir'], $tmp_name)) { En tal caso sería: Código PHP: |
| |||
bueno he hecho lo que me han dicho pero igual no funciona,cam,b Sobre el tema de $_FILES , he leido lo que encontrado y lo he entiendo. Ya no se que hacer para que funcione y pueda subir las imagenes a mi servidor. Saludos |
| |||
Cita:
Iniciado por Dannydaniel bueno he hecho lo que me han dicho pero igual no funciona,cam,b Sobre el tema de $_FILES , he leido lo que encontrado y lo he entiendo. Ya no se que hacer para que funcione y pueda subir las imagenes a mi servidor. Saludos En esta página tienes la explicación de como se sube y el código necesario: http://www.php.net/manual/es/features.file-upload.php Quizás te aclare ver el contenido de las variables, añade este código a la página que recibe el fichero: $ficheroname=$_FILES['userfile']['name']; echo "El valor de -userfile- -name- es: $ficheroname <BR>"; $tipo=$_FILES['userfile']['type']; echo "El valor de -userfile- -type- es: $tipo <BR>"; $size=$_FILES['userfile']['size']; echo "El valor de -userfile- -size- es: $size <BR>"; $fichero_tmp=$_FILES['userfile']['tmp_name']; echo "El valor de -userfile- -tmp_name- es: $fichero_tmp <BR>"; La salida que te tiene que dar es similar a esta: El valor de -userfile- -name- es: bichosdvd.jpg El valor de -userfile- -type- es: image/pjpeg El valor de -userfile- -size- es: 387640 El valor de -userfile- -tmp_name- es: /tmp/phpAqH6hS Ten en cuenta que el nombre del fichero que subes se almacena con un nombre temporal (en este caso /tmp/phpAqH6hS ) y es este el que tienes que mover o copiar. El fichero que subo es bichosdvd.jpg, pero no se almacena en el servidor con este nombre. En la línea: if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) { copy($HTTP_POST_FILES['userfile']['tmp_name'], "/place/to/put/uploaded/file"); cambia "/place/to/put/uploaded/file" por un directorio donde tengas permisos para escribir, por ejemplo en "/tmp/$_FILES['userfile']['name']" para copiarlo con el nombre que tenía el fichero en el origen. Suerte. |