用於存儲上傳文件的服務器端php腳本:upload_file.php
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_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 "Stored in: " . $_FILES["file"]["tmp_name"];
}
move_uploaded_file($_FILES["file"]["tmp_name"],
"./" . $_FILES["file"]["name"]);//將上傳的文件存儲到服務器
//echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
?>
注:"file"爲客戶端上傳文件時,輸入的key值,具體指的是什麼看下面代碼:
iphone客戶端代碼:
NSURL *url = [NSURL URLWithString:WEB_SERVICES_URL];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setFile:@"/Users/mac/Desktop/Zwoptex.app/Contents/Info.plist" forKey:@"file"];
[request setDelegate:self];
[request startAsynchronous];
注:WEB_SERVICES_URL爲服務器端腳本的地址比如:http:localhost:8888:/MAMP/upload_file.php
setfile的第一個參數爲爲客戶端上傳到服務端的文件,注意必須是全路徑(我有疑惑),但在mac 下必須是全路徑的,否則不會訪問網絡,更別提上傳文件了
其實就這麼簡單
客戶端第二個方法:該方法不需要使用絕對路徑
[request setData:UIImagePNGRepresentation([UIImage imageNamed:@"test.jpg"]) withFileName:@"test.jpg" andContentType:@"image/jpg" forKey:@"file"];
文件的下載:
NSURL *url = [NSURL URLWithString:kCONTACT_PLIST_URL];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadDestinationPath:[PlistManager sharedInstance].contactFilePath];
[request startSynchronous];
注:kCONTACT_PLIST_URL:爲網絡資源的地址
[PlistManager sharedInstance].contactFilePath:爲客戶端存儲下載文件的路徑