2009-11-08 47 views
7

中的web服務發送/獲取文件這是可能的嗎? 什麼是發送文件的正確方法?如何通過php

謝謝

+0

你嘗試過什麼,什麼地方出了錯?你認爲它應該如何工作?你有任何代碼或僞代碼向我們展示? – 2009-11-08 13:33:24

回答

13

我不如果你想你的web服務上傳/下載文件。無論如何,你可以使用捲曲(http://fr.php.net/curl)從其他網絡服務器上傳/下載文件。

爲了得到一些文件上傳到web服務從用戶它幾乎相同從表單獲取它,請使用超全局變量:$ _ FILES(doc)獲取上傳文件。

從PHP上傳到一個web服務

$fullflepath = 'C:\temp\test.jpg'; 
$upload_url = 'http://www.example.com/uploadtarget.php'; 
$params = array(
'photo'=>"@$fullfilepath", 
'title'=>$title 
); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_VERBOSE, 1); 
curl_setopt($ch, CURLOPT_URL, $upload_url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $params); 
$response = curl_exec($ch); 
curl_close($ch); 

的網絡服務來獲取文件

$uploads_dir = '/uploads'; 
foreach ($_FILES["photo"]["error"] as $key => $error) { 
    if ($error == UPLOAD_ERR_OK) { 
     $tmp_name = $_FILES["photo"]["tmp_name"][$key]; 
     $name = $_FILES["photo"]["name"][$key]; 
     move_uploaded_file($tmp_name, "$uploads_dir/$name"); 
    } 
} 

PS:抱歉,由於某種原因,計算器不喜歡做的$_FILES鏈接.. 。所以我已鏈接超全球網頁而不是

+0

您是否知道使用SOAP的解決方案,用於soap服務的webservices – 2009-11-08 13:45:16

+0

我認爲您必須使用base64編碼該文件,請參閱'base64_encode'函數用於此目的 – RageZ 2009-11-08 13:50:28

+0

我得到415個curl錯誤代碼...請幫助 – rajmohan 2012-06-14 09:31:40

0

你好這裏例Image upload

<?php 



$path="aa/";// Set your path to image upload 
if(!is_dir($path)){ 
mkdir($path); 
} 
$roomPhotoList = $_POST['image']; 
$random_digit=date('Y_m_d_h_i_s'); 
$filename=$random_digit.'.jpg'; 
$decoded=base64_decode($roomPhotoList); 
file_put_contents($path.$filename,$decoded); 

?> 

它可以快速的圖片上傳代碼,在PHP iOS和Android