从 iOS 应用程序上传文件到服务器
Posted
技术标签:
【中文标题】从 iOS 应用程序上传文件到服务器【英文标题】:Upload files to the server from iOS app 【发布时间】:2013-11-09 13:10:34 【问题描述】:我可以在 ios 应用上将图片以外的文件上传到服务器吗?我使用 UIImagePickerController,它允许选择图像或拍照,然后我将它们附加并上传到服务器。我可以用 iPhone 中的 word 或 pdf 文件做同样的事情吗 请帮帮我!
【问题讨论】:
什么服务器?UIImagePickerController
不允许你附加任何东西。它用于选择图像或拍照。你需要澄清这个问题。
我相信你可以。 Dropbox 当然可以同步 PDF、ZIP 和其他类型的文件,所以我会说可以。也许将文件转换为 NSData 并使用 AFNetworking 之类的网络库将数据发送到服务器(注意:我自己没有尝试过)。
【参考方案1】:
这里是 ASIHTTP 库使用的代码 ASIHTTP Library Download
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"Your Url"];
[request setPostValue:@"test" forKey:@"value1"];
[request setPostValue:@"test" forKey:@"value2"];
[request setTimeOutSeconds:20];
//Create a 256KB file
NSData *data = [[NSMutableData alloc] initWithLength:256*1024];
NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"file"];
[data writeToFile:path atomically:NO];
[request setFile:path forKey:@"file"];
[request startAsynchronous];
假设您使用的是 php Server,下面的代码可能对您有所帮助
$filedir = '';
$uploadfile = $filedir.basename($_FILES['myfile']['name']);
move_uploaded_file($_FILES['myfile']['tmp_name'], $uploadfile);
【讨论】:
我不明白,这段代码上传的文件存在于我的 iPhone 中,对吧?但是如何让用户有机会选择应该上传的确切文件呢?以上是关于从 iOS 应用程序上传文件到服务器的主要内容,如果未能解决你的问题,请参考以下文章
从设备和云存储服务上传和下载图像或文件(文档、PDF)到 iOS 应用程序
如何使用 swift 从 iOS 设备上传文件(到 REDCap)