Variable AS3<>PHP apres upload
Bonjour a tous,
cela fait maintenant une semaine que je tente de faire un systeme d upload en AS3 qui upload un fichier et creer un dossier du nom de l id session en cours.
sous IE c est ok mais sous Firefox et Safari ca ne fonctionne pas le repertoire n est pas cree et le fichier est mis a la racine.
pensant qu il s agissait d une perte de session j ai voulu transmettre mon id a flash puis de flash la transmettre au php se chargeant de l upload. Meme resultat ca fonctionne sous IE et pas de repertoire cree sous Firefox et Safari, je commence a desesperer car c est un peu la cle de la suite de mon site...
si une bonne ame peut m aider, pour info j ai fait, ou tente de faire, environ 30 tuto de google sans resultat.
code du php contenant le module flash d upload
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<?php
session_start();
?>
<head>
</head>
<body>
<?php
$sess_id= "rep_test";
?>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="380" height="190">
<param name="movie" value="AS3_File_Upload.swf" />
<?php echo "<PARAM NAME=FlashVars VALUE='sess_id=".$sess_id."'>"?>
<param name="quality" value="high">
<?php echo "<embed src='AS3_File_Upload.swf' FlashVars='".$sess_id."' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width='380' height='190'></embed>"?>
</object>
</div>
</div> |
Code AS3 du module adapte d un tuto
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
/*
Script Written By: Adam Khoury @ www.developphp.com
*/
// First thing is to set the flashing upload message clip to invisible
uploadMsg.visible = false;
// Set the URL for the PHP uploader script
var URLrequest:URLRequest = new URLRequest("uploader_script.php");
// Assign the image types Filter
var imageTypes:FileFilter = new FileFilter("Images (*.jpg, *.jpeg)", "*.jpg; *.jpeg;");
// Assign the document types filter
var allTypes:Array = new Array(imageTypes);
// Set the FileReference name
var fileRef:FileReference = new FileReference();
// Add event listeners for its various fileRef functions below
fileRef.addEventListener(Event.SELECT, syncVariables);
fileRef.addEventListener(Event.COMPLETE, completeHandler);
fileRef.addEventListener(ProgressEvent.PROGRESS, progressHandler);
// Add event listeners for your 2 buttons
browse_btn.addEventListener(MouseEvent.CLICK, browseBox);
upload_btn.addEventListener(MouseEvent.CLICK, uploadVars);
// Function that fires off when the user presses "browse for a file"
function browseBox(event:MouseEvent):void {
fileRef.browse(allTypes);
}
// Function that fires off when the user presses the "upload it now" btn
function uploadVars(event:MouseEvent):void {
uploadMsg.visible = true;
fileRef.upload(URLrequest);
upload_btn.visible = false;
}
// Function that fires off when File is selected from PC and Browse dialogue box closes
function syncVariables(event:Event):void {
fileDisplay_txt.text = "" + fileRef.name;
blocker.visible = false;
upload_btn.visible = true;
progressBar.width = 2;
var variables:URLVariables = new URLVariables();
variables.todayDate = new Date();
var keyStr:String;
var valueStr:String;
var paramObj:Object=LoaderInfo(this.root.loaderInfo).parameters;
for (keyStr in paramObj)
{
valueStr = String(paramObj[keyStr]);
var myText = valueStr;
}
variables.Name = myText; // This could be an input field variable like in my contact form tutorial : )
URLrequest.method = URLRequestMethod.POST;
URLrequest.data = variables;
}
// Function that fires off when upload is complete
function completeHandler(event:Event):void {
uploadMsg.visible = false;
blocker.visible = true;
status_txt.text = fileRef.name + " ha sido cargado.";
fileDisplay_txt.text = "";
}
// Function that fires off when the upload progress begins
function progressHandler(event:ProgressEvent):void {
// we want our progress bar to be 200 pixels wide when done growing so we use 200*
// Set any width using that number, and the bar will be limited to that when done growing
progressBar.width = Math.ceil(200*(event.bytesLoaded/event.bytesTotal));
} |
code php du fichier appele pour l upload
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
<?php
/*
Script Written By: Adam Khoury @ www.developphp.com
*/
// Set local PHP vars from the POST vars sent from flash
$carpeta_unica = $_POST['Name'];
if (isset($_FILES['Filedata']['name'])) {
chmod ("../artes/", 0777);
@mkdir("../artes/".$carpeta_unica, 0777);
chmod("../artes/".$carpeta_unica, 0777);
$uploadDir = "../artes/".$carpeta_unica.'/';
$uploadFile = $uploadDir . basename($_FILES['Filedata']['name']);
move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile);
}
?> |
merci d avance pour votre aide