2013-03-19 58 views
0

AIR代碼:錯誤的配置PHP - AIR

for(var j:int=0;j&quote ContenedorListaArchivos.numChildren;j++) 
{ 

    var M:MovieClip = MovieClip(ContenedorListaArchivos.getChildAt(j)); 

    if(M.UploadedFile.Estado==1) 
    { 
    var file:File = File.desktopDirectory.resolvePath(M.FullPath);      
    file.addEventListener(ProgressEvent.PROGRESS,M.ProgresoUpload); 
    file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,M.CompleteUpload); ‌​ 
    file.upload(new URLRequest(_phpscript+"?Opcion=UploadFile&destination="+_destination)); 
    } 
} 

PHP代碼:

<?php 

tempFile = $_FILES['Filedata']['tmp_name']; 
$fileName = $_FILES['Filedata']['name']; 
$fileSize = $_FILES['Filedata']['size']; 

$dir = ($_GET['destination']) ? $_GET['destination'] : 'images'; 

if (!file_exists($dir)) mkdir($dir, 0777); 

$isMove =move_uploaded_file($tempFile, $dir .'/'. $fileName); 

if($isMove) 
echo "OK"; 
else 
echo "NO"; 

?> 

當我上傳一個文件中的PHP返回OK。 但是,當上傳多個文件時,只有第一個副本是「OK」,另一個返回「NO」。

爲什麼?代碼中有什麼錯誤? 我應該在PHP.ini文件中更改哪些內容?

謝謝,最好的問候。

+2

你如何試圖上傳多個文件?您發佈的代碼用於上傳單個文件... – 2013-03-19 05:18:17

+0

循環上傳多個文件的代碼 – 2013-03-19 05:18:48

+0

上傳來自AIR。 – Frankgrandson 2013-03-19 05:21:47

回答

0

你鬆了作業嗎? 上傳多個文件

<form action="file-upload.php" method="post" enctype="multipart/form-data"> 
    Send these files:<br /> 
    <input name="userfile[]" type="file" /><br /> 
    <input name="userfile[]" type="file" /><br /> 
    <input type="submit" value="Send files" /> 
</form> 

當上述表單提交,陣列$ _FILES [ 'userfile的'],$ _FILES [ 'userfile的'] [ '名稱'],和$ _FILES [ 'userfile的'] ['size']將被初始化(以及4.1.0之前的PHP版本的$ HTTP_POST_FILES)。當register_globals打開時,上傳文件的全局變量也被初始化。其中每一個都是提交文件的適當值的數字索引數組。

例如,假設提交了文件名/home/test/review.html和/home/test/xwp.out。在這種情況下,$ _FILES ['userfile'] ['name'] [0]將包含值review.html,並且$ _FILES ['userfile'] ['name'] [1]將包含值xwp.out 。同樣,$ _FILES ['userfile'] ['size'] [0]將包含review.html的文件大小,等等。

$ _FILES ['userfile'] ['name'] [0],$ _FILES ['userfile'] ['tmp_name'] [0],$ _FILES ['userfile'] ['size'] [0 ]和$ _FILES ['userfile'] ['type'] [0]也被設置。

如果你是一個入門

<?php 

function reArrayFiles(&$file_post) { 

$file_ary = array(); 
$file_count = count($file_post['name']); 
$file_keys = array_keys($file_post); 

for ($i=0; $i<$file_count; $i++) { 
    foreach ($file_keys as $key) { 
     $file_ary[$i][$key] = $file_post[$key][$i]; 
    } 
} 

return $file_ary; 
} 



    if ($_FILES['upload']) { 
     $file_ary = reArrayFiles($_FILES['userfile']); 

     foreach ($file_ary as $file) { 
      print 'File Name: ' . $file['name']; 
      print 'File Type: ' . $file['type']; 
      print 'File Size: ' . $file['size']; 
     } 
    } 


    ?> 
+1

這個答案適用於'html'和'PHP',但是OP使用'Flex'。 – 2013-03-19 05:26:38

+0

是的,我使用AIR。 – Frankgrandson 2013-03-19 05:35:03

+0

PHP配置有這個變量:memory_limit 128M; post_max_size 100M; upload_max_filesize 100M; max_file_uploads 20; – Frankgrandson 2013-03-19 05:44:17