2011-05-05 46 views
0

我製作了一個閃光攝像頭應用程序,允許用戶使用網絡攝像頭拍攝自己的照片。我已經成功地將照片保存在我的本地主機上。但是,我想設置這些照片的名稱。目前,照片的名稱由在我的閃光燈攝像頭快照應用程序中保存一張照片

$ uniqueStamp = date('U');

我也有我的Flash應用程序一個文本框,允許從用戶的照片名稱輸入。例如,如果用戶在文本框中輸入'MYPHOTONAME',那麼將保存在我的本地主機上的照片也會被命名爲'MYPHOTONAME'。我如何在Flash和PHP中執行此操作?目前我有一些問題,因爲我無法發送文本字符串到PHP。

這裏是我的閃存代碼將快照發送到PHP,讓PHP將它保存在我的本地主機:

imgBA = jpgEncoder.encode(imgBD1);

sendReq.​​data = imgBA;

sendLoader.load(sendReq);

這是我的PHP代碼:

如果(isset($ GLOBALS [ 「HTTP_RAW_POST_DATA」])){

$照片= $ _POST [ '照片'] ;

$ uniqueStamp = date('U');

$ filename = $ photo。$ uniqueStamp。「。jpg」;

$ fp = fopen('photos /'.$ filename,「wb」);

fwrite($ fp,$ GLOBALS ['HTTP_RAW_POST_DATA']);

fclose($ fp);

echo'filename = photos /'.$ filename。「& base =」。$ _ SERVER [「HTTP_HOST」]。dirname($ _ SERVER [「PHP_SELF」]);

}

正如你所看到的,我想在$照片通過= $ _ POST [ '照片'];從閃存到PHP,但我不知道確切的代碼,任何人都可以幫助我?

回答

0

你可以使用這個類org.lzyy.util.UploaderPostHelper.getPostData()效仿的HTTP上傳(做的FileReference,但與生成的數據同樣的事情)

ActionScript端:

var urlRequest:URLRequest = new URLRequest(); 
urlRequest.url = uploadPath; 
urlRequest.contentType = 'multipart/form-data; boundary=' + UploadPostHelper.getBoundary(); 
urlRequest.method = URLRequestMethod.POST; 
urlRequest.data = UploadPostHelper.getPostData(file, parameters); 
urlRequest.requestHeaders.push(new URLRequestHeader('Cache-Control', 'no-cache')); 

var urlLoader:URLLoader = new URLLoader(); 
urlLoader.dataFormat = URLLoaderDataFormat.BINARY; 
//handler for succesful loading of request, ex: trace(urlLoader.data); 
//Complete not mean image handling was a success 
//Memory usage, type checking, security restriction etc. could produce errors 
urlLoader.addEventListener(Event.COMPLETE, onComplete); 
//handler for faulty loading of request 
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, onError); 
urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError); 
urlLoader.load(urlRequest); 

和PHP側,一個基本的圖片上傳處理:

<?php 
if ((($_FILES["file"]["type"] == "image/jpeg") 
|| ($_FILES["file"]["type"] == "image/pjpeg")) 
&& ($_FILES["file"]["size"] < 20000)) 
{ 
    if ($_FILES["file"]["error"] > 0) 
    { 
     echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; 
    } 
    else 
    { 
     echo "Upload: " . $_FILES["file"]["name"] . "<br />"; 
     echo "Type: " . $_FILES["file"]["type"] . "<br />"; 
     echo "Size: " . ($_FILES["file"]["size"]/1024) . " Kb<br />"; 
     echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; 

     if (file_exists("upload/" . $_FILES["file"]["name"])) 
     { 
      echo $_FILES["file"]["name"] . " already exists. "; 
     } 
     else 
     { 
      move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); 
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; 
     } 
    } 
} 
else 
{ 
    echo "Invalid file"; 
} 
?> 

只有一件你不能做的事是聽上傳進度。

相關問題