modify manually instalar php windows iis upload

manually - Error de PHP: carga de un archivo



php windows iis 7 (7)

Intento escribir algunos php para subir un archivo a una carpeta en mi servidor web. Esto es lo que tengo:

<?php if ( !empty($_FILES[''file''][''tmp_name'']) ) { move_uploaded_file($_FILES[''file''][''tmp_name''], ''./'' . $_FILES[''file''][''name'']); header(''Location: http://www.mywebsite.com/dump/''); exit; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html> <head> <title>Dump Upload</title> </head> <body> <h1>Upload a File</h1> <form action="upload.php" enctype="multipart/form-data" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="1000000000" /> Select the File:<br /><input type="file" name="file" /><br /> <input type="submit" value="Upload" /> </form> </body> </html>

Obtengo estos errores:

Advertencia: move_uploaded_file (./ test.txt) [function.move-upload-file]: error al abrir la transmisión: Permiso denegado en E: / inetpub / vhosts / mywebsite.com / httpdocs / dump / upload.php en la línea 3

Advertencia: move_uploaded_file () [function.move-uploaded-file]: no se puede mover ''C: / WINDOWS / Temp / phpA30E.tmp'' a ''./test.txt'' en E: / inetpub / vhosts / mywebsite.com / httpdocs / dump / upload.php en la línea 3

Advertencia: No se puede modificar la información del encabezado: los encabezados ya enviados por (salida iniciada en E: / inetpub / vhosts / mywebsite.com / httpdocs / dump / upload.php: 3) en E: / inetpub / vhosts / mywebsite.com / httpdocs / dump / upload.php en la línea 4

PHP versión 4.4.7 Ejecutar IIS en un cuadro de Windows. Este archivo / carpeta en particular tiene 777 permisos.

¿Algunas ideas?


Advertencia: move_uploaded_file () [function.move-uploaded-file]: no se puede mover ''C: / WINDOWS / Temp / phpA30E.tmp'' a ''./people.xml'' en E: / inetpub / vhosts / mywebsite.com / httpdocs / dump / upload.php en la línea 3

es la línea importante que dice que no puede poner el archivo donde lo desea y esto normalmente significa un problema de permisos

compruebe el proceso que ejecuta la aplicación (normalmente el proceso de los servidores web para php) tiene los derechos para escribir un archivo allí.

EDITAR:

aguantar un poco salté el arma un poco ¿es correcta la ruta al archivo en la primera línea?


Como es Windows, no existe un 777 real. Si usa chmod , consulte los comentarios relacionados con Windows.

Compruebe que la cuenta de IIS puede acceder (leer, escribir, modificar) estas dos carpetas:

E:/inetpub/vhosts/mywebsite.com/httpdocs/dump/ C:/WINDOWS/Temp/


Intenta agregar una ruta. El siguiente código funciona para mí:

<?php if ( !empty($_FILES[''file'']) ) { $from = $_FILES[''file''][''tmp_name'']; $to = dirname(__FILE__).''/''.$_FILES[''file''][''name'']; if( move_uploaded_file($from, $to) ){ echo ''Success''; } else { echo ''Failure''; } header(''Location: http://www.mywebsite.com/dump/''); exit; } ?>


Otro pensamiento para observar es su separador de directorio, está usando / en un cuadro de Windows ..


Agregue el usuario de IIS en el grupo de perservaciones de seguridad de carpetas de volcado y asígnele acceso de lectura / escritura.


Dios mio

move_uploaded_file($_FILES[''file''][''tmp_name''], ''./'' . $_FILES[''file''][''name'']);

No hagas eso. $_FILES[''file''][''name''] podría ser ../../../../boot.ini o cualquier cantidad de cosas malas. Nunca deberías confiar en este nombre. Deberías cambiar el nombre del archivo por algo más y asociar el nombre original con tu nombre aleatorio. Como mínimo use el basename($_FILES[''file''][''name'']) .


Crea una carpeta llamada "imagen" con permiso de carpeta 777

<?php move_uploaded_file($_FILES[''file''][''tmp_name''],"image/".$_FILES[''file''][''name'']); ?>