php sqlite存入文件,php – 上传sqlite文件

我正在使用AFNetworking尝试上传文件:

-(void)uploadFile{

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"data.sqlite"];

NSURL *filePathURL = [NSURL fileURLWithPath:filePath];

NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://localhost:8888/myApp/upload.php" parameters:nil constructingBodyWithBlock:^(id formData) {

[formData appendPartWithFileURL:filePathURL name:@"file" fileName:@"data.sqlite" mimeType:@"text/html" error:nil];

} error:nil];

AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];

NSProgress *progress = nil;

NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithStreamedRequest:request progress:&progress completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {

if (error) {

NSLog(@"Error: %@", error);

} else {

NSLog(@"Success: %@ %@", response, responseObject);

}

}];

[uploadTask resume];

}

而这个php文件upload.php:

$uploaddir = 'uploads/';

$file = basename($_FILES['uploadedfile']['name']);

$uploadfile = $uploaddir . $file;

echo "file=".$file;

if (move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $uploadfile)) {

echo $file;

}

else {

echo "error";

}

?>

这是打印:

Error Domain=com.alamofire.error.serialization.response Code=-1016

“Request failed: unacceptable content-type: text/html”

UserInfo=0x7b8b2bf0

是mimeType的问题吗?我还在iOS和php方面使用了application / x-sqlite3内容类型.

解决方法:

客户端代码使用文件字段名称上载,但服务器代码正在查找uploadfile.您必须在两个平台上使用相同的字段名称.

mime类型应该是固定的.因为SQLite文件是二进制文件,而不是文本文件,我建议使用mime类型的application / x-sqlite3或application / octet-stream,而不是text / html或text / plain.但不匹配的字段名称是更令人震惊的问题.

顺便提一下,您报告错误消息:

Error Domain=com.alamofire.error.serialization.response Code=-1016 “Request failed: unacceptable content-type: text/html” UserInfo=0x7b8b2bf0

这通常是因为您的服务器页面返回text / html,但AFURLSessionManager期待JSON.

您可以更改经理的responseSerializer:

manager.responseSerializer = [AFHTTPResponseSerializer serializer];

或者,更好的是,更改您的服务器代码以返回JSON.

标签:php,ios,afnetworking-2

来源: https://codeday.me/bug/20190528/1171877.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值