`
wenxin2009
  • 浏览: 320512 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

上传图片和mp3

    博客分类:
  • ios
 
阅读更多
//
//  UploadImgVo.m
//  
//
//  Created by cs on 15/8/24.
//  Copyright (c) 2015年. All rights reserved.
//

#import "UploadImgVo.h"
#import "AFNetSessionClient.h"
#import "AppDelegate.h"
#import "LoginMainViewController.h"

@implementation UploadImgVo

+(NSURLSessionDataTask *)uploadImg:(NSString *)strPath withDic:(NSDictionary *)parameters withSuccess:(AFNetSessionSuccessModelBlock)success withFialure:(AFNetSessionFailBlock)failure{
    [[UIApplication sharedApplication]setNetworkActivityIndicatorVisible:YES];
    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
    NSString *strToken;
    NSString *strUserId;
    if (appDelegate.loginMainViewController.isLogin) {
        strToken = appDelegate.loginMainViewController.user.token;
        strUserId = [NSString stringWithFormat:@"%d",appDelegate.loginMainViewController.user.mid];
    }else{
        strToken = DefaultToken;
        strUserId = @"0";
    }
    [parameters setValue:strToken forKey:@"token"];//artist/uploadImg
    return [[AFNetSessionClient sharedClient] POST:[NSString stringWithFormat:@"user/%@/%@",strUserId,strPath] parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        [[UIApplication sharedApplication]setNetworkActivityIndicatorVisible:NO];
        UIImage *image = [parameters valueForKey:@"image"];
        NSData *imageData = UIImageJPEGRepresentation(image, 0.5);
//        NSData *imageData = UIImagePNGRepresentation(image);
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        formatter.dateFormat = @"yyyyMMddHHmmss";
        NSString *str = [formatter stringFromDate:[NSDate date]];
        NSString *fileName = [NSString stringWithFormat:@"%@.jpg", str];
//        NSString *fileName = [NSString stringWithFormat:@"%@.png", str];
        [formData appendPartWithFileData:imageData name:@"imgFile" fileName:fileName mimeType:@"image/jpg"];
    } success:^(NSURLSessionDataTask *task, id responseObject) {
        DLOG(@"图片上传成功");
        NSError *error;
        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:&error];
        if (success) {
            if (!error.code == 0) {
                failure(error,nil,nil);
            }else{
                NSString *status =[dic valueForKey:@"status"];
                if ([status isEqualToString:@"200" ])
                {
                    success(dic);
                }
                else
                {
                    NSString *message = [dic valueForKey:@"message"];
                    failure(nil,status,message);
                }
                
            }
        }
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        DLOG(@"上传图片异常::%@",error.description);
        [[UIApplication sharedApplication]setNetworkActivityIndicatorVisible:NO];
        if (failure) {
            failure(error,nil,nil);
        }
    }];

}

+(NSURLSessionDataTask *)uploadMp3:(NSString *)strPath withDic:(NSDictionary *)parameters withSuccess:(AFNetSessionSuccessModelBlock)success withFialure:(AFNetSessionFailBlock)failure{
    [[UIApplication sharedApplication]setNetworkActivityIndicatorVisible:YES];
    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
    NSString *strToken;
    NSString *strUserId;
    if (appDelegate.loginMainViewController.isLogin) {
        strToken = appDelegate.loginMainViewController.user.token;
        strUserId = [NSString stringWithFormat:@"%d",appDelegate.loginMainViewController.user.mid];
    }else{
        strToken = DefaultToken;
        strUserId = @"0";
    }
    [parameters setValue:strToken forKey:@"token"];
    return [[AFNetSessionClient sharedClient] POST:[NSString stringWithFormat:@"user/%@/%@",strUserId,strPath] parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        [[UIApplication sharedApplication]setNetworkActivityIndicatorVisible:NO];
        NSString *mp3Path = [parameters valueForKey:@"mp3"];
        NSData* mp3Data= [NSData dataWithContentsOfFile:mp3Path];
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        formatter.dateFormat = @"yyyyMMddHHmmss";
        NSString *str = [formatter stringFromDate:[NSDate date]];
        NSString *fileName = [str stringByAppendingPathExtension:@"mp3"];
        [formData appendPartWithFileData:mp3Data name:@"imgFile" fileName:fileName mimeType:@"audio/mp3"];
    } success:^(NSURLSessionDataTask *task, id responseObject) {
        DLOG(@"文件上传成功");
        NSError *error;
        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:&error];
        if (success) {
            if (!error.code == 0) {
                failure(error,nil,nil);
            }else{
                NSString *status =[dic valueForKey:@"status"];
                if ([status isEqualToString:@"200" ])
                {
                    success(dic);
                }
                else
                {
                    NSString *message = [dic valueForKey:@"message"];
                    failure(nil,status,message);
                }
                
            }
        }
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        DLOG(@"上传图片异常::%@",error.description);
        [[UIApplication sharedApplication]setNetworkActivityIndicatorVisible:NO];
        if (failure) {
            failure(error,nil,nil);
        }
    }];
}

@end

 

分享到:
评论

相关推荐

    zphuploadjs文件上传拖拽效果以及图片MP3MP4格式的预览

    本主题聚焦于"zphupload.js",这是一个专为实现文件上传拖拽效果和预览功能的JavaScript库,特别针对图片、MP3音频和MP4视频格式。这个库利用Ajax技术进行异步上传,提供了更为流畅的用户体验。 首先,我们要理解...

    Layui图片上、视频、音频、文件上传接口及跨域上传

    在IT行业中,前端开发经常会遇到用户交互式的文件上传需求,比如图片、视频、音频和文档等。Layui是一款优秀的前端UI框架,它提供了一系列完善的组件来满足这些需求。本项目着重介绍了Layui中关于文件上传的接口及其...

    图片上传工具类

    图片上传工具类通常是为了简化用户在应用程序中上传图片的操作流程,它封装了图片的选取、预览、压缩、上传等一系列过程。在描述中提到的“两种图片上传”可能指的是本地文件选择上传和拍照上传,这两种方式各有特点...

    上传图片,文件,音频等

    本文将深入探讨如何实现这些功能,以"上传图片,文件,音频等"为主题,结合提供的两个压缩文件——"android_ImageUpload.rar"和"C#.net部分代码.zip",我们将分析Android平台上的图片上传和C# .NET框架下的文件上传...

    七牛上传音乐 例子

    七牛云存储是一款高效、安全、可扩展的云端存储服务,广泛应用于图片、音频、视频等多媒体文件的存储和管理。在本示例中,我们将探讨如何利用七牛云存储服务上传音乐文件,并针对不同内容管理系统(CMS)进行适配。 ...

    微信小程序开发 上传图片或录音文件到oss

    此文件是对微信小程序,上传图片或者录音文件到阿里云oss代码的封装个, 1上传图片引用示例 wx.chooseImage({ count: 3, // 默认最多一次选择9张图 sizeType: ['original', 'compressed'], // 可以指定是原图还是...

    vue实现移动端input上传视频、音频

    在本文中,我们将探讨如何在移动端使用Vue.js框架实现视频和音频文件的上传功能。文章首先介绍了基本的HTML结构,通过隐藏的input元素配合label标签实现用户上传文件的操作。接着详细解析了JavaScript代码部分,包括...

    UEditor编辑器兼容音频上传

    该编辑器在众多网站和应用中被广泛使用,因为它支持多种格式的内容编辑,包括文字、图片、表格等,并且提供了良好的用户体验。 在UEditor编辑器中,音频独立上传功能是一项重要的增强,它允许用户直接在编辑器内...

    kindeditor--4.1.12 解决flash批量上传图片按钮不显示与支持video视频

    本篇文章将详细讲解如何解决在该版本中遇到的两个主要问题:Flash批量上传图片按钮不显示以及如何支持video视频的插入。 首先,我们来关注第一个问题:Flash批量上传图片按钮不显示。这个问题可能由以下几个原因...

    只要5分: AS3.0 在线录音并上传,转码MP3,二次压缩上传,带播放功能

    MP3数据的传输是gzip压缩的,服务器端存了压缩和不压缩的版本。 这个flash还带播放功能,能播放压缩和没有压缩过的mp3。 使用方法见rec.php;支持ie,ff,chrome,safari。 只要5分,超值,其它的都要10分!!

    php 文件上传源码

    在PHP中,文件上传是网站常见功能之一,用于让用户上传图片、文档等文件到服务器。在本源码中,我们可能会看到PHP是如何处理文件上传请求的。PHP提供了内置的函数来处理这一过程,使得文件上传变得简单易行。 首先...

    android集成七牛oss功能实现上传与下载

    本文将详细介绍如何在Android Studio 3.5.1环境下,集成七牛云SDK(版本7.5.0),实现图片、视频等文件的上传和下载功能。 首先,集成七牛云SDK是实现功能的第一步。在项目的build.gradle模块文件中,添加七牛...

    android 上传图片的代码

    本文将详细讲解如何在Android平台上编写上传图片的代码,并扩展到视频和音频的上传。 首先,我们需要创建一个用于上传的Java类。这个类通常会包含以下功能: 1. **选择图片**: - 使用`Intent`来打开系统图库或...

    多类文件上传影音图片

    "多类文件上传影音图片"这个标题暗示了系统支持用户上传多种类型的媒体文件,包括图片、音频(音乐)、文档和其他可能的附件,如食品的照片或相关的PDF文件。这一特性通常涉及到前端和后端的协同工作,以实现用户...

    带图片swf zip flase mp3上传的文本编辑框 以及带进度条的文件上传

    使用的是jquery的xheditor+struts实现了想QQ...在文本编辑框了您可以插入图片!电影!压缩包等多种文件!且页面及后台都有详细的注释!通俗易懂!同时使用了jquery-uploadify的插件+struts实现的带进度条的大文件上传

    Ipad2图片视频上传教程

    对于Ipad2用户而言,掌握如何上传图片和视频是一项基本但至关重要的技能。本文将深入解析Ipad2图片视频上传教程,涵盖从软件准备到具体操作的全过程,帮助用户轻松实现媒体文件的传输与管理。 ### 一、准备工作:...

    php图片音频上传源码附带

    例如,限制上传的文件类型为图片(jpg、png、jpeg)和音频(mp3、MP4): ```php $allowed_file_types = array('jpg', 'png', 'jpeg', 'mp3', 'MP4'); $file_type = pathinfo($_FILES['fileToUpload']['name'], ...

    serv-u限制上传的文件类型

    这些文件可能包括但不限于MP3音乐文件、视频文件、图片等,这不仅占用了宝贵的存储空间,还可能带来安全隐患,例如传播恶意软件或病毒。 #### 解决方案:配置目录访问规则 为了有效管理服务器资源并确保安全性,...

    文件上传下载测试用例.pdf

    4. 文件类型和文件大小合法,上传一个0kb的图片,提示信息:“请重新上传文件,或者是不能上传0kb的图片”。 5. 文件类型和文件大小合法,上传一个正在使用中的图片(即打开该图片,在上传该图片),上传成功。 6. ...

Global site tag (gtag.js) - Google Analytics