iOS - Photo Album 图片/相册管理
前言
NS_CLASS_AVAILABLE_IOS(2_0) @interface UIImagePickerController : UINavigationController <NSCoding>
@available(iOS 2.0, *) public class UIImagePickerController : UINavigationController, NSCoding
iOS 获取图片有三种方法:
- 直接调用摄像头拍照;
- 从相册中选择;
- 从图库中选择。
UIImagePickerController 是系统提供的用来获取图片和视频的接口。用 UIImagePickerController 类来获取图片视频,大体分为以下几个步骤:
- 初始化 UIImagePickerController 类;
- 设置 UIImagePickerController 实例的数据来源类型;
- 设置代理;
- 如果需要做图片修改的话设置 allowsEditing = YES。
1、imagePickerController 的创建
Objective-C
需遵守协议 UIImagePickerControllerDelegate, UINavigationControllerDelegate
// 实例化 UIImagePickerController 对象 UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; // 设置代理
imagePickerController.delegate = self; // 设置是否需要做图片编辑,default NO
imagePickerController.allowsEditing = YES; // 判断数据来源是否可用
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { // 设置数据来源
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; // 打开相机/相册/图库
[self presentViewController:imagePickerController animated:YES completion:nil];
} // UIImagePickerControllerDelegate 协议方法 // 取消选择
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { // 退出当前界面
[picker dismissViewControllerAnimated:YES completion:nil];
} // 选择完成
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 20, self.view.frame.size.width,
self.view.frame.size.height - 20)];
[self.view addSubview:imageView]; // 获取点击的图片
imageView.image = [info objectForKey:UIImagePickerControllerOriginalImage]; [picker dismissViewControllerAnimated:YES completion:nil];
}
Swift
需遵守协议 UIImagePickerControllerDelegate, UINavigationControllerDelegate
// 实例化 UIImagePickerController 对象 let imagePickerController = UIImagePickerController() // 设置代理
imagePickerController.delegate = self // 设置是否需要做图片编辑,default NO.
imagePickerController.allowsEditing = true // 判断数据来源是否可用
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.PhotoLibrary) { // 设置数据来源
imagePickerController.sourceType = UIImagePickerControllerSourceType.PhotoLibrary // 打开相机/相册/图库
self.presentViewController(imagePickerController, animated: true, completion: nil)
} // UIImagePickerControllerDelegate 协议方法 // 取消选择
func imagePickerControllerDidCancel(picker: UIImagePickerController) { // 退出当前界面
picker.dismissViewControllerAnimated(true, completion: nil)
} // 选择完成
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { let imageView = UIImageView(frame: CGRectMake(0, 20, self.view.frame.size.width, self.view.frame.size.height - 20))
self.view.addSubview(imageView) // 获取点击的图片
imageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage picker.dismissViewControllerAnimated(true, completion: nil)
}
2、imagePickerController 的设置
Objective-C
// 设置代理,需遵守 UIImagePickerControllerDelegate, UINavigationControllerDelegate 协议
imagePickerController.delegate = self; // 设置是否需要做图片编辑
imagePickerController.allowsEditing = YES; // 判断设备数据来源是否支持
/*
UIImagePickerControllerSourceTypePhotoLibrary, // 来自图库
UIImagePickerControllerSourceTypeCamera, // 来自相机
UIImagePickerControllerSourceTypeSavedPhotosAlbum // 来自相册
*/
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { } // 判断摄像头是否支持
/*
UIImagePickerControllerCameraDeviceRear, // 后置摄像头
UIImagePickerControllerCameraDeviceFront // 前置摄像头
*/
if ([UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear]) { } // 判断闪光灯是否支持
if ([UIImagePickerController isFlashAvailableForCameraDevice:UIImagePickerControllerCameraDeviceFront]) { } // 获取数据来源支持的媒体类型
/*
UIImagePickerControllerSourceTypePhotoLibrary, // 来自图库
"public.image",
"public.movie" UIImagePickerControllerSourceTypeCamera, // 来自相机
... UIImagePickerControllerSourceTypeSavedPhotosAlbum // 来自相册
"public.image",
"public.movie"
*/
NSArray *mediaTypesArray = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeSavedPhotosAlbum]; // 获取相机拥有的模式
/*
UIImagePickerControllerCameraDeviceRear, // 后置摄像头
... UIImagePickerControllerCameraDeviceFront // 前置摄像头
...
*/
NSArray *captureModesArray = [UIImagePickerController availableCaptureModesForCameraDevice:UIImagePickerControllerCameraDeviceFront]; // 设置数据来源
/*
UIImagePickerControllerSourceTypePhotoLibrary, // 来自图库,默认
UIImagePickerControllerSourceTypeCamera, // 来自相机
UIImagePickerControllerSourceTypeSavedPhotosAlbum // 来自相册
*/
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; // 设置媒体类型
/*
kUTTypeImage 包含: kUTTypeImage; // 抽象的图片类型
kUTTypeJPEG;
kUTTypeJPEG2000;
kUTTypeTIFF;
kUTTypePICT;
kUTTypeGIF;
kUTTypePNG;
kUTTypeQuickTimeImage;
kUTTypeAppleICNS;
kUTTypeBMP;
kUTTypeICO kUTTypeMovie 包含: kUTTypeAudiovisualContent; // 抽象的声音视频
kUTTypeMovie; // 抽象的媒体格式(声音和视频)
kUTTypeVideo; // 只有视频没有声音
kUTTypeAudio; // 只有声音没有视频
kUTTypeQuickTimeMovie;
kUTTypeMPEG;
kUTTypeMPEG4;
kUTTypeMP3;
kUTTypeMPEG4Audio;
kUTTypeAppleProtectedMPEG4Audio 需要 #import <MobileCoreServices/MobileCoreServices.h> 才能用 kUTTypeImage 和 KUTTypeMovie 。 default value is an array containing kUTTypeImage.
*/
imagePickerController.mediaTypes = @[(NSString *)kUTTypeImage, (NSString *)kUTTypeMovie]; // 设置摄像头
/*
UIImagePickerControllerCameraDeviceRear, // 后置摄像头,默认
UIImagePickerControllerCameraDeviceFront // 前置摄像头
*/
imagePickerController.cameraDevice = UIImagePickerControllerCameraDeviceFront; // 设置相机模式
/*
UIImagePickerControllerCameraCaptureModePhoto, // 照相模式,默认
UIImagePickerControllerCameraCaptureModeVideo // 录像模式
*/
imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto; // 设置闪光灯模式
/*
UIImagePickerControllerCameraFlashModeOff = -1, // 关
UIImagePickerControllerCameraFlashModeAuto = 0, // 自动,默认
UIImagePickerControllerCameraFlashModeOn = 1 // 开
*/
imagePickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeOn; // 设置录像质量
/*
UIImagePickerControllerQualityTypeHigh = 0, // 高质量,highest quality
UIImagePickerControllerQualityTypeMedium = 1, // 中质量,默认,Wi-Fi
UIImagePickerControllerQualityTypeLow = 2, // 低质量,cellular network
UIImagePickerControllerQualityType640x480 = 3, // VGA 质量,VGA quality UIImagePickerControllerQualityTypeIFrame1280x720 = 4,
UIImagePickerControllerQualityTypeIFrame960x540 = 5 apply only if mediaTypes includes kUTTypeMovie
*/
imagePickerController.videoQuality = UIImagePickerControllerQualityTypeHigh; // 设置录像时间长度
/*
default is 10 minutes. apply only mediaTypes includes kUTTypeMovie
*/
imagePickerController.videoMaximumDuration = 600; // 设置是否显示相机原生 UI
/*
set to NO to hide all standard camera UI. default is YES. available sourceType is Camera.
*/
imagePickerController.showsCameraControls = YES; // 自定义相机视图
/*
set a view to overlay the preview view. default is YES. available sourceType is Camera.
*/
imagePickerController.cameraOverlayView = myView; // 改变相机视图
/*
set the transform of the preview view. default is YES. available sourceType is Camera. 旋转 45 度,需要输入的参数为弧度,45/180 * M_PI,1 度 = PI/180 弧度
*/
imagePickerController.cameraViewTransform = CGAffineTransformMakeRotation(0.25 * M_PI); // 打开相机/相册/图库
/*
访问设置的数据来源界面
*/
[self presentViewController:imagePickerController animated:YES completion:nil]; // 拍照
/*
拍摄照片
*/
[imagePickerController takePicture]; // 录像 // 开始录像
[imagePickerController startVideoCapture]; // 停止录像
[imagePickerController stopVideoCapture]; // 退出当前界面(相机/相册/图库)
/*
在 UIImagePickerControllerDelegate 协议方法中调用
*/
[picker dismissViewControllerAnimated:YES completion:nil]; // 获取选取媒体类型(图片或者视频)
/*
选取的信息都在 info 中,info 是一个字典。字典中的键: UIImagePickerControllerMediaType; // 指定用户选择的媒体类型,包含着 kUTTypeImage 和 kUTTypeMovie
UIImagePickerControllerOriginalImage; // 原始图片
UIImagePickerControllerEditedImage; // 修改后的图片,只有打开编辑模式 info 里才有此键值对
UIImagePickerControllerCropRect; // 裁剪尺寸,只有打开编辑模式 info 里才有此键值对
UIImagePickerControllerMediaURL; // 媒体的 URL
UIImagePickerControllerReferenceURL; // 原件的 URL
UIImagePickerControllerMediaMetadata // 当数据来源是照相机的时候这个值才有效 kUTTypeImage 包含: kUTTypeImage; // 抽象的图片类型
kUTTypeJPEG;
kUTTypeJPEG2000;
kUTTypeTIFF;
kUTTypePICT;
kUTTypeGIF;
kUTTypePNG;
kUTTypeQuickTimeImage;
kUTTypeAppleICNS;
kUTTypeBMP;
kUTTypeICO kUTTypeMovie 包含: kUTTypeAudiovisualContent; // 抽象的声音视频
kUTTypeMovie; // 抽象的媒体格式(声音和视频)
kUTTypeVideo; // 只有视频没有声音
kUTTypeAudio; // 只有声音没有视频
kUTTypeQuickTimeMovie;
kUTTypeMPEG;
kUTTypeMPEG4;
kUTTypeMP3;
kUTTypeMPEG4Audio;
kUTTypeAppleProtectedMPEG4Audio 需要 #import <MobileCoreServices/MobileCoreServices.h> 才能用 kUTTypeImage 和 KUTTypeMovie 。
*/ // 直接处理点击的媒体资源 UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 20, self.view.frame.size.width,
self.view.frame.size.height - 20)];
[self.view addSubview:imageView]; // 获取点击的图片
imageView.image = [info objectForKey:UIImagePickerControllerOriginalImage]; // 先判断点击的资源类型再处理 // 判断点击的媒体资源类型
if ([[info objectForKey:UIImagePickerControllerMediaType] isEqualToString:(NSString *)kUTTypeImage]) { UIImageView *headerImageView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 40, 100, 100)];
headerImageView.layer.borderColor = [[UIColor greenColor] CGColor];
headerImageView.layer.borderWidth = 3;
[self.view addSubview:headerImageView]; // 获取点击的图片
headerImageView.image = [info objectForKey:UIImagePickerControllerEditedImage];
}
Swift
// 设置代理,需遵守 UIImagePickerControllerDelegate, UINavigationControllerDelegate 协议
imagePickerController.delegate = self // 设置是否需要做图片编辑
imagePickerController.allowsEditing = true // 判断设备数据来源是否支持
/*
case PhotoLibrary // 来自图库
case Camera // 来自相机
case SavedPhotosAlbum // 来自相册
*/
if UIImagePickerController.isSourceTypeAvailable(.PhotoLibrary) { } // 判断摄像头是否支持
/*
case Rear // 后置摄像头
case Front // 前置摄像头
*/
if UIImagePickerController.isCameraDeviceAvailable(.Rear) { } // 判断闪光灯是否支持
if UIImagePickerController.isFlashAvailableForCameraDevice(.Front) { } // 获取数据来源支持的媒体类型
/*
PhotoLibrary, // 来自图库
"public.image",
"public.movie" Camera, // 来自相机
... SavedPhotosAlbum // 来自相册
"public.image",
"public.movie"
*/
let mediaTypesArray = UIImagePickerController.availableMediaTypesForSourceType(.SavedPhotosAlbum) // 获取相机拥有的模式
/*
Rear, // 后置摄像头
... Front // 前置摄像头
...
*/
let captureModesArray = UIImagePickerController.availableCaptureModesForCameraDevice(.Front) // 设置数据来源
/*
case PhotoLibrary // 来自图库
case Camera // 来自相机
case SavedPhotosAlbum // 来自相册
*/
imagePickerController.sourceType = .PhotoLibrary // 设置媒体类型
/*
kUTTypeImage 包含:
kUTTypeImage; // 抽象的图片类型
kUTTypeJPEG;
kUTTypeJPEG2000;
kUTTypeTIFF;
kUTTypePICT;
kUTTypeGIF;
kUTTypePNG;
kUTTypeQuickTimeImage;
kUTTypeAppleICNS;
kUTTypeBMP;
kUTTypeICO kUTTypeMovie 包含:
kUTTypeAudiovisualContent; // 抽象的声音视频
kUTTypeMovie; // 抽象的媒体格式(声音和视频)
kUTTypeVideo; // 只有视频没有声音
kUTTypeAudio; // 只有声音没有视频
kUTTypeQuickTimeMovie;
kUTTypeMPEG;
kUTTypeMPEG4;
kUTTypeMP3;
kUTTypeMPEG4Audio;
kUTTypeAppleProtectedMPEG4Audio 需要 import MobileCoreServices 才能用 kUTTypeImage 和 KUTTypeMovie 。 default value is an array containing kUTTypeImage.
*/
imagePickerController.mediaTypes = [String(kUTTypeImage), String(kUTTypeMovie)] // 设置摄像头
/*
Rear, // 后置摄像头,默认
Front // 前置摄像头
*/
imagePickerController.cameraDevice = .Front // 设置相机模式
/*
Photo, // 照相模式,默认
Video // 录像模式
*/
imagePickerController.cameraCaptureMode = .Photo // 设置闪光灯模式
/*
Off = -1, // 关
Auto = 0, // 自动,默认
On = 1 // 开
*/
imagePickerController.cameraFlashMode = .On // 设置录像质量
/*
TypeHigh = 0, // 高质量, highest quality
TypeMedium = 1, // 中质量,默认, medium quality, Wi-Fi
TypeLow = 2, // 低质量, lowest quality, cellular network
Type640x480 = 3, // VGA 质量, VGA quality TypeIFrame1280x720 = 4,
TypeIFrame960x540 = 5 apply only if mediaTypes includes kUTTypeMovie
*/
imagePickerController.videoQuality = .TypeHigh // 设置录像时间长度
/*
default is 10 minutes. apply only mediaTypes includes kUTTypeMovie
*/
imagePickerController.videoMaximumDuration = 600 // 设置是否显示相机原生 UI
/*
set to NO to hide all standard camera UI. default is YES. available sourceType is Camera.
*/
imagePickerController.showsCameraControls = true // 自定义相机视图
/*
set a view to overlay the preview view. default is YES. available sourceType is Camera.
*/
imagePickerController.cameraOverlayView = myView // 改变相机视图
/*
set the transform of the preview view. default is YES. available sourceType is Camera. 旋转 45 度,需要输入的参数为弧度,45/180 * M_PI,1 度 = PI/180 弧度
*/
imagePickerController.cameraViewTransform = CGAffineTransformMakeRotation(0.25 * CGFloat(M_PI)) // 打开相机/相册/图库
/*
访问设置的数据来源界面
*/
self.presentViewController(imagePickerController, animated: true, completion: nil) // 拍照
/*
拍摄照片
*/
imagePickerController.takePicture() // 录像 // 开始录像
imagePickerController.startVideoCapture() // 停止录像
imagePickerController.stopVideoCapture() // 退出当前界面(相机/相册/图库)
/*
在 UIImagePickerControllerDelegate 协议方法中调用
*/
picker.dismissViewControllerAnimated(true, completion: nil) // 获取选取媒体类型(图片或者视频)
/*
选取的信息都在 info 中,info 是一个字典。字典中的键: UIImagePickerControllerMediaType; // 指定用户选择的媒体类型,包含着 kUTTypeImage 和 kUTTypeMovie
UIImagePickerControllerOriginalImage; // 原始图片
UIImagePickerControllerEditedImage; // 修改后的图片,只有打开编辑模式 info 里才有此键值对
UIImagePickerControllerCropRect; // 裁剪尺寸,只有打开编辑模式 info 里才有此键值对
UIImagePickerControllerMediaURL; // 媒体的 URL
UIImagePickerControllerReferenceURL; // 原件的 URL
UIImagePickerControllerMediaMetadata // 当数据来源是照相机的时候这个值才有效 kUTTypeImage 包含:
kUTTypeImage; // 抽象的图片类型
kUTTypeJPEG;
kUTTypeJPEG2000;
kUTTypeTIFF;
kUTTypePICT;
kUTTypeGIF;
kUTTypePNG;
kUTTypeQuickTimeImage;
kUTTypeAppleICNS;
kUTTypeBMP;
kUTTypeICO kUTTypeMovie 包含:
kUTTypeAudiovisualContent; // 抽象的声音视频
kUTTypeMovie; // 抽象的媒体格式(声音和视频)
kUTTypeVideo; // 只有视频没有声音
kUTTypeAudio; // 只有声音没有视频
kUTTypeQuickTimeMovie;
kUTTypeMPEG;
kUTTypeMPEG4;
kUTTypeMP3;
kUTTypeMPEG4Audio;
kUTTypeAppleProtectedMPEG4Audio 需要 import MobileCoreServices 才能用 kUTTypeImage 和 KUTTypeMovie 。
*/ // 直接处理点击的媒体资源 let imageView = UIImageView(frame: CGRectMake(0, 20, self.view.frame.size.width, self.view.frame.size.height - 20))
self.view.addSubview(imageView) // 获取点击的图片
imageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage // 先判断点击的资源类型再处理 // 判断点击的媒体资源类型
if (info[UIImagePickerControllerMediaType]?.isEqualToString(String(kUTTypeImage)) != nil) { let headerImageView = UIImageView(frame: CGRectMake(20, 40, 100, 100))
headerImageView.layer.borderColor = UIColor.greenColor().CGColor
headerImageView.layer.borderWidth = 3
self.view.addSubview(headerImageView) // 获取点击的图片
headerImageView.image = info[UIImagePickerControllerEditedImage] as? UIImage
}
3、UIImagePickerControllerDelegate 协议方法
Objective-C
// 取消选择,点击界面中的取消(Cancel)按钮时触发
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { } // 选择完成,点击界面中的某个图片或者选择(Choose)按钮时触发
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { }
Swift
// 取消选择,点击界面中的取消(Cancel)按钮时触发
func imagePickerControllerDidCancel(picker: UIImagePickerController) { } // 选择完成,点击界面中的某个图片或者选择(Choose)按钮时触发
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { }
iOS - Photo Album 图片/相册管理的更多相关文章
- iOS开发之保存照片到系统相册(Photo Album)
iOS开发之保存照片到系统相册(Photo Album) 保存照片到系统相册这个功能很多社交类的APP都有的,今天我们简单讲解一下,如何将图片保存到系统相册(Photo Album). 创建UIIma ...
- MVC3学习:实现简单的相册管理和图片管理
相册管理说白了就是文件夹管理,因此要用到命名空间using System.IO; 一.先来做相册管理,添加相册我就不做了,就是添加文件夹,这里主要做一下相册的显示.相册在页面上显示,需要一张图片,可以 ...
- 修正iOS从照相机和相册中获取的图片 方向
修正iOS从照相机和相册中获取的图片 方向 修正iOS从照相机和相册中获取的图片 方向 使用系统相机拍照得到的图片的默认方向有时不是ImageOrientationDown,而是ImageOrie ...
- iOS:实现图片的无限轮播(二)---之使用第三方库SDCycleScrollView
iOS:实现图片的无限轮播(二)---之使用第三方库SDCycleScrollView 时间:2016-01-19 19:13:43 阅读:630 评论:0 收藏:0 ...
- 基于jQuery向下弹出遮罩图片相册
今天给大家分享一款基于jQuery向下弹出遮罩图片相册.单击相册图片时,一个遮罩层从上到下动画出现.然后弹出显示图片.这款插件适用浏览器:IE8.360.FireFox.Chrome.Safari.O ...
- iOS 关于 GIF 图片那点事
前言 前几天我们项目组的群里提了这么一件事情:在我们的应用中存储动态的GIF图到相册,保存的图片变成了静态图片.而微博则能正确保存,可见这并不是一个技术不可实现的.前不久刚好看了苹果关于ImageIO ...
- ios最新调用手机相册选取头像(UIActionSheet过期)
由于 UIActionSheet过期所以可以使用如下调用手机相册 前提不要忘记添加代理如下两个 UIImagePickerControllerDelegate,UINavigationControll ...
- 手机相册管理(gallery) ---- HTML5+
模块:gallery Gallery模块管理系统相册,支持从相册中选择图片或视频文件.保存图片或视频文件到相册等功能.通过plus.gallery获取相册管理对象. 管理我们手机上用到的相册:选择图片 ...
- CSS3学习总结——实现瀑布流布局与无限加载图片相册
首先给大家看一下瀑布流布局与无限加载图片相册效果图: 一.pic1.html页面代码如下: <!DOCTYPE html> <html> <head> <me ...
随机推荐
- [转]clrDateTime to Dynamics AX TransDate
转自:https://community.dynamics.com/ax/f/33/t/30791.aspx TransDate是一种只有日期,没有时间的类型 utcDateTime=Global:: ...
- linux连接远程服务器提示拒绝访问
如上图,出现的问题是因为端口号错误,如果不是正常连接的端口号,那么就是端口号被恶意更改! 解决方案: 关掉或者开启需要的端口号注释!
- C#:屏幕显示区域问题
更改电脑屏幕显示的文字大小后,平面显示区域问题. /// <summary> /// 屏幕显示尺寸 /// </summary> public static Size Revi ...
- tomcat清除缓存
方案一:点击进入解压后的tomcat,找到work文件夹,.此文件下有个catalina目录(tomcat小名叫catalina),work目录下的文件都可以删除.如果我们先前发布的一个项目有错,大家 ...
- python基础使用
Python 标识符 在python里,标识符有字母.数字.下划线组成. 在python中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. python中的标识符是区分大小写的. 以 ...
- java中几种常见字符集与乱码介绍
1. ASCII和Ansi编码 字符内码(charcter code)指的是用来代表字符的内码 .读者在输入和存储文档时都要使用内码,内码分为 单字节内码 -- Single-Byte chara ...
- 【转】探索C++的秘密之详解extern
本文转自:http://i.cnblogs.com/EditPosts.aspx?opt=1 时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C ...
- linux下svn常用指令
windows下的TortoiseSVN是资源管理器的一个插件,以覆盖图标表示文件状态,几乎所以命令都有图形界面支持,比较好用,这里就不多说.主要说说linux下svn的使用,因为linux下大部分的 ...
- 使用JavaScript操作DOM节点元素的常用方法(创建/删除/替换/复制等)
getElementById(id)这是通过id来访问某一元素,最常用的之一,例:<html><body><div id="myid">test ...
- 【Nginx】上传文件的大小限制
今天导入一份Excel文件,浏览器报“413”HTTP异常码. 第一反应检查应用程序所设的文件大小的过滤:第二个检查JS上传的文件大小限制. 后来,转念一想,有可能是Nginx过滤的,马上查看erro ...