par
jerome69003 » 23 oct. 2009, 17:00
Bonjour a tous
petite question, j'ai ce script php qui fonctionne bien pour creer un repertoire et envoyer des fichiers a l'interieur de ce dernier, hors quand je fais cela a partir de Firefox, IE6, Safari tt va bien mais des que je passe sur IE5 le fichier est uploade a la racine et non dans le repertoire que je veux creer (en fait ce repertoire ne se creee meme pas).
J'espere avoir ete clair
Si quelqu'un peut me trouver une solution je lui serait grandement reconnaissant
merci d'avance !
Jerome
Au cas ou voici la demo en ligne :
http://www.market-inn.austudio.fr/jerom-1/
et voici mon code source :
Code : Tout sélectionner
<?PHP
//restore session code begin. if you don't use session or cookie just delete below code section.
if( isset($_POST['browser_cookie']) )
{
//retrive cookie from form field value. The EAFlashUpload sends the cookie as a value of form field due to Flash API limitations.
$cookie = split(";", $_POST['browser_cookie']);
foreach($cookie as $value)
{
$nvpair = split("=", $value);
$parsedcookie[trim($nvpair[0])] = $nvpair[1];
}
$_COOKIE = $parsedcookie;
session_start();
}
//restore session code end
//!!! If you don't use session or cookie then delete above code. !!!//
//existing folder on the server for files storing with write access
$uploaddir = dirname($_SERVER['SCRIPT_FILENAME'])."/UploadedFiles/";
if( isset($_POST['folder']) )
{
$uploaddir .= foldername_safe($_POST['folder']);
if(!file_exists($uploaddir))
{
mkdir($uploaddir);
}
$uploaddir .= "/";
}
// define encoding for path names
$codepage = "ISO-8859-1";
//check file existence in the request
if ( count($_FILES) > 0 )
{
$file = $_FILES["Filedata"];
//check on upload errors
if ( $file['error'] != UPLOAD_ERR_OK )
{
// set the error header just to inform EAFlashupload that upload was unsuccessful
header("HTTP/1.1 500 Internal Server Error");
switch( $file['error'] )
{
case UPLOAD_ERR_INI_SIZE:
echo "PHP Settings doesn't allow such file size";
break;
case UPLOAD_ERR_FORM_SIZE:
echo "Uploader didn't allow such file size";
break;
case UPLOAD_ERR_PARTIAL:
echo "Uploaded file hasn't been complete uploaded";
break;
case UPLOAD_ERR_NO_FILE:
echo "File hasn't been uploaded";
break;
}
break;
}
//define a full file path
$encodedname = mb_convert_encoding( basename($file['name']), $codepage , 'UTF-8' );
$uploadfile = $uploaddir . $encodedname;
//move uploaded file from temp location
if ( move_uploaded_file( $file['tmp_name'], $uploadfile ) )
{
header("HTTP/1.1 200 OK");
echo "File " . $uploadfile . " has been uploaded!";
}
else
{
// set the error header just to inform EAFlashupload that upload was unsuccessful
header("HTTP/1.1 500 Internal Server Error");
echo "Can't move file from temporary directory to destination";
}
}
else
{
echo "Request didn't contain the file";
}
function foldername_safe($name) {
$except = array(':', '*', '?', '"', '<', '>', '|');
return str_replace($except, '', $name);
}
?>
Bonjour a tous
petite question, j'ai ce script php qui fonctionne bien pour creer un repertoire et envoyer des fichiers a l'interieur de ce dernier, hors quand je fais cela a partir de Firefox, IE6, Safari tt va bien mais des que je passe sur IE5 le fichier est uploade a la racine et non dans le repertoire que je veux creer (en fait ce repertoire ne se creee meme pas).
J'espere avoir ete clair :oops:
Si quelqu'un peut me trouver une solution je lui serait grandement reconnaissant :priere:
merci d'avance !
Jerome
Au cas ou voici la demo en ligne :
http://www.market-inn.austudio.fr/jerom-1/
et voici mon code source :
[code]<?PHP
//restore session code begin. if you don't use session or cookie just delete below code section.
if( isset($_POST['browser_cookie']) )
{
//retrive cookie from form field value. The EAFlashUpload sends the cookie as a value of form field due to Flash API limitations.
$cookie = split(";", $_POST['browser_cookie']);
foreach($cookie as $value)
{
$nvpair = split("=", $value);
$parsedcookie[trim($nvpair[0])] = $nvpair[1];
}
$_COOKIE = $parsedcookie;
session_start();
}
//restore session code end
//!!! If you don't use session or cookie then delete above code. !!!//
//existing folder on the server for files storing with write access
$uploaddir = dirname($_SERVER['SCRIPT_FILENAME'])."/UploadedFiles/";
if( isset($_POST['folder']) )
{
$uploaddir .= foldername_safe($_POST['folder']);
if(!file_exists($uploaddir))
{
mkdir($uploaddir);
}
$uploaddir .= "/";
}
// define encoding for path names
$codepage = "ISO-8859-1";
//check file existence in the request
if ( count($_FILES) > 0 )
{
$file = $_FILES["Filedata"];
//check on upload errors
if ( $file['error'] != UPLOAD_ERR_OK )
{
// set the error header just to inform EAFlashupload that upload was unsuccessful
header("HTTP/1.1 500 Internal Server Error");
switch( $file['error'] )
{
case UPLOAD_ERR_INI_SIZE:
echo "PHP Settings doesn't allow such file size";
break;
case UPLOAD_ERR_FORM_SIZE:
echo "Uploader didn't allow such file size";
break;
case UPLOAD_ERR_PARTIAL:
echo "Uploaded file hasn't been complete uploaded";
break;
case UPLOAD_ERR_NO_FILE:
echo "File hasn't been uploaded";
break;
}
break;
}
//define a full file path
$encodedname = mb_convert_encoding( basename($file['name']), $codepage , 'UTF-8' );
$uploadfile = $uploaddir . $encodedname;
//move uploaded file from temp location
if ( move_uploaded_file( $file['tmp_name'], $uploadfile ) )
{
header("HTTP/1.1 200 OK");
echo "File " . $uploadfile . " has been uploaded!";
}
else
{
// set the error header just to inform EAFlashupload that upload was unsuccessful
header("HTTP/1.1 500 Internal Server Error");
echo "Can't move file from temporary directory to destination";
}
}
else
{
echo "Request didn't contain the file";
}
function foldername_safe($name) {
$except = array(':', '*', '?', '"', '<', '>', '|');
return str_replace($except, '', $name);
}
?>
[/code]