2012-11-01 51 views
2

可能重複:
Failing to upload file with curl in heroku php app文件上傳到超薄框架在PHP中使用捲曲

處理PHP中的文件上傳,我想使用該文件捲曲發到我的休息後, api使用Slim Framework。但是,$ _FILES在到達Slim中的函數後總是空的。

sender.php

if(move_uploaded_file($_FILES['myFile']["tmp_name"], $UploadDirectory . $_FILES['myFile']["name"])) 
{ 
    $ch = curl_init(); 
    $data = array('name' => 'test', 'file' => $UploadDirectory . $_FILES['myFile']["name"]); 

    curl_setopt($ch, CURLOPT_URL, 'http://localhost/slimlocation/upload/'); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 

    curl_exec($ch); 
} 

和函數接收的修身要求:

$app->post('/upload/', function() use ($app) { 
    if(isset($_FILES)){ 

     // count is always zero 
     echo count($_FILES); 

    } 
}); 

我是否發送錯誤的文件和/或是否有可能做什麼,我嘗試?任何幫助表示讚賞。

回答

1

據我所知,你需要使用更多的選項來捲曲文件上傳。見here

看那CURLOPT_UPLOAD選項和CURLOPT_POSTFIELDS的描述,它說,你需要使用@文件名前上傳(和使用的完整路徑)。

+1

非常感謝。我不需要CURLOPT_UPLOAD,但文件名/完整路徑是我的問題。 – Drew

0

這些都是我需要的變化和它的工作:

$filepath = str_replace('\\', '/', realpath(dirname(__FILE__))) . "/"; 
$target_path = $filepath . $UploadDirectory . $FileName; 
$data = array('name' => 'test', 'file' => '@'.$target_path);