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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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