2014-04-02 185 views
0

我使用ASIHTTPRequest將圖像發送到POST HTTP請求中的服務器。 該圖像保存到手機圖庫中,我可以使用它的「assets url」來顯示它,如下所示: assets-library://asset/asset.PNG?id = F2B91A20-615E- 4E88-B9AF-8D209A587505 & ext = PNG從資產獲取文件路徑url

但我的問題是,我不想加載整個圖像在內存中發送它,所以我想用它的真正的URL來獲取它併發送它。

這是我的代碼:

- (void)startPostWithMedia 
{ 
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
    [request setDelegate:self]; 

    [request setRequestMethod:@"POST"]; 

    NSString *stringBoundary = [NSString stringWithFormat:@"--%@", @"12345"]; 
    NSString * fullContentType = [[NSString alloc]initWithFormat:@"%@;boundary=%@", contentType, stringBoundary]; 

    [request addRequestHeader:CONTENT_TYPE_HDR value:fullContentType]; 

    [request appendPostDataFromFile:[mediaUrl absoluteString]]; 

    [self retain]; 

    [request startAsynchronous]; 
} 

的主要問題是,當我使用appendPostDataFromFile:使用資產的URL,這個URL資產不返回圖像,只返回零,這是行不通的。

我需要獲取該圖片的真實文件路徑才能使用它,而不是資產網址。

在一些文章中,我發現在這裏,我已經看到,你不能從資產庫中得到實際的文件路徑,因爲沙箱,所以...我怎麼能解決它?

非常感謝!

+0

要訪問手機圖庫,請使用UIImagePickerController。在相應的代表中,您將找到圖像路徑。 – Apurv

+0

我在那裏得到的是資產路徑......不是我在這裏問的。 – kemmitorz

+0

然後從資產URL中獲取圖像,將其存儲在某個已知位置,共享該URL的路徑。 – Apurv

回答

0

正如您發現的那樣,您的選擇非常有限。沙盒防止你得到一個「真實」的文件:/// url。您唯一的選擇是將圖像讀入內存(也可以將其寫入應用程序文檔或臨時文件夾中)通過製作文件的副本,至少可以減少長期內存使用量,儘管短期使用是仍然很高。