2015-08-15 107 views
2

哪裏有和每個網站我看,他們說wrong file path導致這個錯誤,但我相信我的路徑是正確的,它昨晚工作,爲什麼不今晚?PHP curl:創建formpost數據失敗

爲了證明路徑是正確的,file_exists($path)返回true

我想用Curl發送文件,我得到failed creating formpost data。到文件,我給捲曲的路徑是象下面這樣:

define('ASSET_PATH', dirname(dirname(dirname(__FILE__))) . '/asset'); 

$postfields = array(
    'chat_id' => $user->user_id, 
    'caption' => $asset->caption, 
    'duration' => $asset->duration, 
    'video'  => "@" . ASSET_PATH . "/video/" . $asset->name, 
); 

當你看到的$postfields['video']值時,輸出爲:

/home/hosseins/domains/my_domain/public_html/telegram/asset/video/Bottle_Bank.mp4 

而且代碼

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); 

$result = curl_exec($ch); 
echo curl_error ($ch); //return failed creating formpost data 
echo '<br />' . ASSET_PATH . "/video/" . $asset->name; //return named path 
curl_close($ch); 

我的地址或問題來自哪裏?有什麼問題嗎?
Dudes我卡在這裏,任何幫助將不勝感激。
在此先感謝

+0

嗨,我也使用sendVideo,但我有這個問題在這裏:http://stackoverflow.com/questions/31961690/trying-to-send-user-video-from-telegram-bot-using-curl你有這樣的問題嗎? – MscEliot

回答

1

也許我的回答迫使你投票因爲愚蠢的問題,但我不得不說這個問題,也許它幫助了某人。

正如我所說,我確信文件的路徑,並沒有問題。

我的$postfields中有一個標題字段,它的值來自數據庫,它的值是'@GamificationBot .... Some Description'。哦!這裏是bug ...

捲曲對待@作爲文件的路徑,意思是當你首先使用字符串@時,該字符串被視爲文件路徑。所以這裏Curl認爲我的標題是文件的路徑,他絕對找不到。

這就是我的問題的原因。
致敬的貢獻者。

0

如果您尚未更改代碼並停止工作,則可能是文件的權限已更改。確保文件具有必要的權限。您可以查看here

+0

感謝您的回答,我檢查了權限並將它們設置爲'755',所以這裏沒有問題,我也檢查過這個鏈接,根據我的路徑是正確的,因爲我們也看到了我的問題的路徑。 –

+0

您是否嘗試過使用其他文件?也許這個文件有問題,也許這個文件太大了。這就是我所能想到的,我從來沒有這樣上傳過,我只是通過文件上傳手動編寫multipart/form-data。 –

+0

是的,我嘗試多個文件,但沒有區別,重點是它昨晚成功運行。代碼魔術!無論如何感謝您的時間 –