gpt4 book ai didi

php - 使用ios上传图片到php

转载 作者:行者123 更新时间:2023-11-29 12:01:47 24 4
gpt4 key购买 nike

我尝试从我的 Iphone 画廊上传的图像都保存为 ipodfile.jpg

我想要从图库中选择的确切图像名称我想创建一个文件夹(使用登录用户名),我想存储在文件夹中

例如

  • 用户名:迈克
  • 图片:welcome.jpg

然后我想创建一个名为mike 的文件夹并将图像保存在里面。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{

[self dismissModalViewControllerAnimated:true];

img = [info valueForKey:UIImagePickerControllerOriginalImage];
//images.image = img;
NSData *imageData = UIImageJPEGRepresentation(img, 90);
NSString *urlString = @"http://192.168.1.92/Abdul/IOS/Chat/upload_file.php";

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];

NSString *boundary = @"---------------------------14737809831466499882746641449"
;
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];

NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Disposition: form-data; name=\"file\"; filename=\"ipodfile.jpg\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imageData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"Successfully uploaded");

}

这是我正在使用的服务器端代码

<?php
$oname=$_FILES["file"]["name"];
$tempname=$_FILES["file"]["tmp_name"];
$path="upload";

echo "Upload: " . $oname . "<br />";
echo "Temp file: " . $tempname . "<br />";


echo "<br>";
$ex=file_exists("upload/$oname");

if($ex)
{
echo "File Already exist";
}
else
{
$upload=move_uploaded_file($tempname,$path.$oname);

if($upload)
{
echo "Sucessfully Stored in: " . $path. $oname;
}
else
{
echo "Not stored Sucessfully : " . $path.$oname;
}
}

最佳答案

你应该为每张图片取唯一的文件名,比如时间戳,它永远是唯一的。

在下一行中,您正在设置图像名称,因此请为其设置时间戳。

 [body appendData:[@"Content-Disposition: form-data; name=\"file\"; filename=\"ipodfile.jpg\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

你可以把我曾经用过的唯一名称改成这样,

            NSDate *currentDate = [[NSDate alloc] init];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
NSString *localDateString = [dateFormatter stringFromDate:currentDate];
NSString* cleanedString = [[localDateString stringByReplacingOccurrencesOfString:@"." withString:@""]stringByReplacingOccurrencesOfString:@":" withString:@""];
NSString *cleanedString2 = [cleanedString stringByAppendingFormat:@"%d",i];
NSString *finalUniqueImageNAme = [cleanedString2 stringByAppendingString:@".jpg"];

希望这会有所帮助;)

更新:

你可以像这样使用唯一的名字,

[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"file\"; filename=\"%@\"\r\n",finalUniqueImageNAme] dataUsingEncoding:NSUTF8StringEncoding]];

第二件事,你应该使用 AFNetworking 来做这类事情。它将管理所有此类内容,例如设置边界等。Click here for AFNetworking github

更新二(根据评论查询):

你应该使用 NSURLSession 而不是 nsurlconnection 因为连接现在已经被弃用所以你的代码应该是这样的

 NSURLSession *session = [NSURLSession sharedSession];


[[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

if (data) {

//if response is in string format
NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

//if response in json format then
id jsonObject = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];

}



}]resume];

关于php - 使用ios上传图片到php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36663565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com