修改单张图片上传到服务器

#pragma mark - changeUserPhoto
- (void)changeUserPhoto {
    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消"
                                               destructiveButtonTitle:nil otherButtonTitles:@"拍照",@"从手机相册选择", nil];
    actionSheet.tag = 120;
   
    [actionSheet showInView:self.view];
}

#pragma mark - actionSheet
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (actionSheet.tag == 120) {
        if (buttonIndex == 0) //拍照
        {
            [self takePhoto];
        }
        else if (buttonIndex == 1) //打开本地相册
        {
            [self openLocalPhoto];
        }
    }
}

#pragma mark - TakePhoto
/**
 *  开始拍照
 */
- (void)takePhoto
{
    UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;
   
    if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])
    {
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        picker.delegate = self;
        picker.allowsEditing = YES;
        picker.sourceType = sourceType;
        [self presentViewController:picker animated:YES completion:nil];
    } else
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示"
                                                        message:@"抱歉,你的设备不支持该功能!"
                                                       delegate:self
                                              cancelButtonTitle:@"确定"
                                              otherButtonTitles:nil];
        [alert show];
        return;
    }
}

#pragma mark - openLibrary
// 打开本地相册

- (void)openLocalPhoto
{
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    picker.delegate  = self;
    picker.allowsEditing = YES;
    [self presentViewController:picker animated:YES completion:nil];
}

- (void) imagePickerController: (UIImagePickerController*) reader
 didFinishPickingMediaWithInfo: (NSDictionary*) info
{
        NSString *strType = [info objectForKey:UIImagePickerControllerMediaType];
        if ([strType isEqualToString:@"public.image"]) //当选择的类型是图片
        {
            UIImage *image = [info objectForKey:@"UIImagePickerControllerEditedImage"]; //先把图片转成NSData
            NSLog(@"image = %@", image);
            [reader dismissViewControllerAnimated:YES completion:nil]; //关闭相册界面
            //压缩图片
            UIImage *scalImage = [self scaleFromImage:image];
            imageView.image = scalImage;
            //保存到本地
          NSString *strfileName = [self saveImage:scalImage];
            //上传头像
            NSString *strUrl = [NSString stringWithFormat:@"%@", @"http://192.168.1.108:8080/resources/user/"];
            strUrl = [strUrl stringByAppendingString:@"headimg/"];
            strUrl = [strUrl stringByAppendingString:@"13061622013"];
            NSURL *url = [NSURL URLWithString:strUrl];
            ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
            [request setDelegate:self];
           
            [request addRequestHeader:@"Content-Type" value:@"application/json; encoding=utf-8"];
            [request addRequestHeader:@"Accept" value:@"application/json"];
            [request setFile:strfileName forKey:@"headImg"];
            [request setRequestMethod:@"POST"];
           
            [request setDidFailSelector:@selector(ASIFormDataRequestFailed:)];
            [request setDidFinishSelector:@selector(ASIFormDataRequestSuceed:)];
            [request startAsynchronous];

}
}
#pragma mark - savaImage// 保存图像
- (NSString *)saveImage:(UIImage*)image
{
    NSData *data;
   
    if (UIImagePNGRepresentation(image) == nil)
    {
        data = UIImageJPEGRepresentation(image, 1.0);
    }
    else
    {
        data = UIImagePNGRepresentation(image);
    }
   
    NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];
    NSString *filePath = [docPath stringByAppendingPathComponent:@"tianImage.png"];
    BOOL result = [data writeToFile:filePath atomically:YES];
    if (result) {
        NSLog(@"写入成功");
    }
    return filePath;
}#pragma mark - scalePhoto// 图像压缩
- (UIImage *)scaleFromImage:(UIImage *)image
{
    if (!image)
    {
        return nil;
    }
   
    NSData *data = UIImagePNGRepresentation(image);
    CGFloat dataSize = data.length/1024;
    CGFloat width  = image.size.width;
    CGFloat height = image.size.height;
    CGSize size;
   
    if (dataSize<=50) //小于50k
    {
        return image;
    }
    else if (dataSize<=100) //小于100k
    {
        size = CGSizeMake(width/2.f, height/2.f);
    }
    else if (dataSize<=200) //小于200k
    {
        size = CGSizeMake(width/4.f, height/4.f);
    }
    else if (dataSize<=500) //小于500k
    {
        size = CGSizeMake(width/4.f, height/4.f);
    }
    else if (dataSize<=1000) //小于1M
    {
        size = CGSizeMake(width/6.f, height/6.f);
    }
    else if (dataSize<=2000) //小于2M
    {
        size = CGSizeMake(width/10.f, height/10.f);
    }
    else //大于2M
    {
        size = CGSizeMake(width/12.f, height/12.f);
    }
   
    UIGraphicsBeginImageContext(size);
    [image drawInRect:CGRectMake(0, 0, size.width, size.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    if (!newImage)
    {
        return image;
    }
    return newImage;
}

#pragma mark - ASIHTTPRequestDelegate
- (void)ASIFormDataRequestSuceed:(ASIFormDataRequest *)request
{
   
}

- (void)ASIFormDataRequestFailed:(ASIFormDataRequest *)request
{
    NSError *error = [request error];
    NSLog(@"error:%@",error);

}

时间: 2024-07-29 23:59:58

修改单张图片上传到服务器的相关文章

felayman——PHP中图片上传到服务器

1.upload_file.php <?php //该文件负责获取上传的图片的扩展名和随机生成文件名 header("content-type:text/html;charset=utf-8"); /** * 获取文件扩展名 *Enter description here ... * @param unknown_type $filename */ function getFileName($filename){ //strrchr- 查找指定字符在字符串中的最后一次出现 ret

php form 图片上传至服务器上

本文章也是写给自己看的,因为写的很简洁,连判断都没有,只是直接实现了能上传的功能. 前台: <form action="upload.php" method="POST" enctype="multipart/form-data"> <input type="file" name="myfile" /> <input type="submit" value=

使用canvas给图片添加水印, canvas转换base64,,canvas,图片,base64等转换成二进制文档流的方法,并将合成的图片上传到服务器,

一,前端合成带水印的图片 一般来说,生成带水印的图片由后端生成,但不乏有时候需要前端来处理.当然,前端处理图片一般不建议,一方面js的处理图片的方法不全,二是有些老版本的浏览器对canvas的支持度不够. 下面我们就说说,利用canvas 生成带水印的图片. 1.我们要实现一下效果 2.创建一个canvas var canvas = document.createElement('canvas'); var time = new Date(); var logoCanvas =time+' '+

使用百度UMeditor富文本编辑器,修改自定义图片上传,修改源码

富文本编辑器,不多说了,这个大家应该都用到过,至于用到的什么版本,那就分很多种 CKEditor:很早以前叫FCK,那个时候也用过,现在改名了,比较流行的一个插件,国外很多公司在用 UEDITOR:百度开发的插件,lite版是UM EasyUI编辑器:用easyUI的都懂,基本上肯定用到 其他的富文本编辑器就不说了,前两个小编我用的比较多 本来我是比较倾向于CKEditor,但是这个插件不支持图片上传,图片功能只能链接过去,而不能在控件本身中上传,所以就选择了UMeditor 为啥选择UM,不选

根目录97 &lt;input file&gt;标签,把图片上传到服务器(跟增删改查一起实现)

1 首先来个简单的html页面: enctype="multipart/form-data" encoding="multipart/form-data" action="../../后台/后台方法.do" //form表单加上这几个属性 action指向后台添加方法 2 3 <input type="button" id="uupdatekeyword2" value="修改"

修改DedeCMS图片上传路径命名规则的具体方法步骤

收藏到:0时间:2013-08-23   文章来源:马海祥博客   访问次数:2350 最近在整理网站根目录下文件的时候,发现马海祥博客网站已经有上千个文件夹了,其中光图片文件夹就占了近一半.这个主要是由于dedecms后台管理系统的图片附件是自动按日保存的,只有有图片或附近上传,就会一天生成一个文件夹,时间长了,就在allimg中就会生成大量的文件夹,对网站的转移和管理来说真的是很不方便呀! 所以在此我根据修改马海祥博客的方法,也在这跟大家分享一下,我是怎么修改网站的图片文件夹只按年月命名保存

android选择图片或拍照图片上传到服务器(包括上传参数)

From:http://blog.csdn.net/springsky_/article/details/8213898具体上传代码: 1.选择图片和上传界面,包括上传完成和异常的回调监听 [java] view plaincopy package com.spring.sky.image.upload; import java.util.HashMap; import java.util.Map; import android.app.Activity; import android.app.

从系统相册中选择GIF图片上传到服务器

-(void)assetPickerController:(ZYQAssetPickerController *)picker didFinishPickingAssets:(NSArray *)assets { for (int i = 0; i < assets.count; i ++) { ALAsset *asset = assets[i]; ALAssetRepresentation *rep = [asset defaultRepresentation]; if ([rep.UTI

python - django 使用ajax将图片上传到服务器并渲染到前端

一.前端代码 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <script> // 创建一个表单对象(用于存储要发送的data数据) form_data = new FormData; // 参数1:后端请求时要获取的参数, 参数