从 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)

如何使用 ios 应用程序将图像上传到 Node.JS 服务器

将 csv 文件上传到 shinyApps.io

从 iOS 上传 Flask 文件

从手机压缩文件并将其上传到服务器?