2011-07-28 44 views
0

我使用Flash將圖像上傳到php腳本,該腳本將文件保存在同一目錄中,然後將其上傳到Facebook相冊。這樣我得到一堆使用的磁盤空間。 有什麼方法可以繞過保存並直接上傳嗎?下面接收並上傳文件而不保存PHP

腳本:

$upload_dir = $_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF']) . '/'; 
$upload_url = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']) . '/'; 
$message =""; 

$temp_name = $_FILES['Filedata']['tmp_name']; 
$file_name = $_FILES['Filedata']['name']; 
$file_name = str_replace("","",$file_name); 
$file_name = str_replace("'","",$file_name); 
$file_path = $upload_dir.$file_name; 

move_uploaded_file($temp_name, $file_path); 

,然後上傳我使用:

$attachment = array (
    'access_token' => $appAccessToken, 
    'message'=> "NAME: ".$name."); 
$attachment['image'] = '@' . realpath($file_path); 

提前感謝!

回答

3
//get it 
$upload_dir = $_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF']) . '/'; 
$upload_url = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']) . '/'; 
$message = ""; 

$temp_name = $_FILES['Filedata']['tmp_name']; 
$file_name = $_FILES['Filedata']['name']; 
$file_name = str_replace("","",$file_name); 
$file_name = str_replace("'","",$file_name); 
$file_path = $upload_dir.$file_name; 

//save it 
move_uploaded_file($temp_name, $file_path); 


//upload it to FB 
$attachment = array (
    'access_token' => $appAccessToken, 
    'message'=> "NAME: ".$name); 
$attachment['image'] = '@' . realpath($file_path); 
//more code to upload it.... 

//delete it 
unlink($file_path); 
  • 得到它
  • 將它保存
  • 上傳到FB
  • 刪除它(與unlink()功能)
+0

謝謝!很好很簡單。 – rctplcs

1

我猜,我不知道這一點,您可以從客戶端計算機發送附件(如C:\ Folder1 \ Folder2 \ Image1.jpg),並且您不必將其上載到服務器以作爲附件發送。 試試吧。

+0

正在考慮它,但並不想硬編碼facebook上傳所需的訪問令牌;)謝謝! – rctplcs

+0

歡迎你。 爲什麼不對它進行硬編碼? 當然你可以刪除該文件,因爲prev答案說,購買的問題是關於上傳,然後刪除所需的服務器的資源... – Yossi

+0

硬編碼訪問令牌到閃存可以恢復與反編譯器,然後用:) – rctplcs