`
fanjf
  • 浏览: 330088 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

分享文件一个上传工具类

    博客分类:
  • Java
 
阅读更多

最近在搭建一个项目,需要用到很多通用的工具类,自己也写了几个。现在分享一下,也方便自己以后使用。如果你觉得不错的话,也欢迎转载。
blog
http://blog.csdn.net/IBM_hoojo
http://hoojo.cnblogs.com
http://hoojo.blogjava.net
email hoojo_@126.com

 

文件上传状态枚举类:

 

package com.hoo.enums;

 

/**

* <b>function:</b> 文件上传状态

* @package com.hoo.enums

* @fileName UploadState.java

* @createDate 2010-10-11 下午12:18:14

* @author hoojo

*/

public enum UploadState {

UPLOAD_SUCCSSS(0, "上传文件成功!" ),

UPLOAD_FAILURE(1, "上传文件失败!" ),

UPLOAD_TYPE_ERROR(2, "上传文件类型错误!" ),

UPLOAD_OVERSIZE(3, "上传文件过大!" ),

UPLOAD_ZEROSIZE(4, "上传文件为空!" ),

UPLOAD_NOTFOUND(5, "上传文件路径错误!" );

 

private String state;

private int flag;

public String getState() {

return this .state;

}

 

public int getFlag() {

return this .flag;

}

UploadState(int flag, String state) {

this .state = state;

this .flag = flag;

}

}

 

 

 

文件上传工具类code:

 

package com.hoo.util;

 

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Random;

import java.util.UUID;

import org.apache.commons.io.FileUtils;

import com.hoo.enums.UploadState;

 

/***

* <b>function:</b> 文件上传工具类

* @author hoojo

* @createDate Oct 9, 2010 11:12:47 PM

* @file UploadFileUtils.java

* @package com.hoo.util

* @blog http://blog.csdn.net/IBM_hoojo

* @email hoojo_@126.com

* @version 1.0

*/

public abstract class UploadFileUtils {

 

//上传文件保存路径

public static String path = "/upload/" ;

//定义可以上传文件的后缀数组,默认"*",代表所有

public static String[] filePostfixs = { "*" };

public static String[] typeImages = { "gif" , "jpeg" , "png" , "jpg" , "tif" , "bmp" };

public static String[] typeOthers = { "html" , "htm" , "doc" , "xls" , "txt" , "zip" , "rar" , "pdf" , "cll" };

 

//上传文件的最大长度

public static long maxFileSize = 1024 * 1024 * 1024 * 2L;//2G

//一次读取多少字节

public static int bufferSize = 1024 * 8;

 

private final static void init() {

if (bufferSize > Integer.MAX_VALUE) {

bufferSize = 1024 * 8;

} else if (bufferSize < 8) {

bufferSize = 8;

}

if (maxFileSize < 1) {

maxFileSize = 1024 * 1024 * 1024 * 2L;

} else if (maxFileSize > Long.MAX_VALUE) {

maxFileSize = 1024 * 1024 * 1024 * 2L;

}

}

 

/**

* <b>function:</b>通过输入流参数上传文件

* @author hoojo

* @createDate Oct 9, 2010 11:22:47 PM

* @param uploadFileName 文件名称

* @param savePath 保存路径

* @param InputStream 上传的文件的输入流

* @return 是否上传成功

* @throws Exception

*/

public static UploadState upload4Stream(String fileName, String path, InputStream is) throws Exception {

init();

UploadState state = UploadState.UPLOAD_FAILURE;

FileOutputStream fos = null;

 

try {

path = getDoPath(path);

mkDir(path);

fos = new FileOutputStream(path + fileName);

 

byte [] buffer = new byte [bufferSize];

int len = 0;

while ((len = is.read(buffer)) > 0) {

fos.write(buffer, 0, len);

}

state = UploadState.UPLOAD_SUCCSSS;

} catch (FileNotFoundException e) {

state = UploadState.UPLOAD_NOTFOUND;

throw e;

} catch (IOException e) {

state = UploadState.UPLOAD_FAILURE;

throw e;

} finally {

if (is != null) {

is.close();

}

if (fos != null) {

fos.flush();

fos.close();

}

}

return state;

}

 

/**

* <b>function:</b>上传文件

* @author hoojo

* @createDate Oct 9, 2010 11:33:27 PM

* @param uploadFileName 文件名称

* @param savePath 保存路径

* @param uploadFile 上传的文件

* @return 是否上传成功

* @throws Exception

*/

public static UploadState upload4Stream(String fileName, String path, File file) throws Exception {

init();

UploadState state = UploadState.UPLOAD_FAILURE;

FileInputStream fis = null;

try {

long size = file.length();

if (size <= 0) {

state = UploadState.UPLOAD_ZEROSIZE;

} else {

if (size <= maxFileSize) {

fis = new FileInputStream(file);

state = upload4Stream(fileName, path, fis);

} else {

state = UploadState.UPLOAD_OVERSIZE;

}

}

} catch (FileNotFoundException e) {

state = UploadState.UPLOAD_NOTFOUND;

throw e;

} catch (IOException e) {

state = UploadState.UPLOAD_FAILURE;

throw e;

} finally {

if (fis != null) {

fis.close();

}

}

return state;

}

 

/**

* <b>function:</b>通过数组进行验证文件类型上传

* @author hoojo

* @createDate Oct 10, 2010 3:39:34 PM

* @param fileName 文件名称

* @param path 文件路径

* @param file 文件

* @param allowTypes 文件后缀、类型数组

* @return 返回是否上传成功

* @throws Exception

*/

public static UploadState upload4Stream(String fileName, String path, File file, String[] allowTypes) throws Exception {

UploadState state = UploadState.UPLOAD_FAILURE;

if (validTypeByName(fileName, allowTypes)) {

state = upload4Stream(fileName, path, file);

} else {

state = UploadState.UPLOAD_TYPE_ERROR;

}

return state;

}

 

/**

* <b>function:</b>通过数组进行验证文件类型上传

* @author hoojo

* @createDate Oct 10, 2010 3:43:30 PM

* @param fileName 文件名称

* @param path 文件路径

* @param InputStream 文件输入流

* @param allowTypes 文件后缀、类型数组

* @return 返回是否上传成功

* @throws Exception

*/

public static UploadState upload4Stream(String fileName, String path, InputStream fs, String[] allowTypes) throws Exception {

UploadState state = UploadState.UPLOAD_FAILURE;

if (validTypeByName(fileName, allowTypes)) {

state = upload4Stream(fileName, path, fs);

} else {

state = UploadState.UPLOAD_TYPE_ERROR;

}

return state;

}

 

/**

* <b>function:</b> 利用FileUtils上传文件;其中maxFileSize是限制上传文件的大小

* @author hoojo

* @createDate Oct 9, 2010 11:49:15 PM

* @param fileName 文件名称

* @param path 保存路径

* @param file 文件

* @return 是否上传成功

* @throws Exception

*/

public static boolean upload4CopyFile(String fileName, String path, File file) throws Exception {

init();

boolean success = false;

if (file.length() <= maxFileSize) {

path = getDoPath(path);

mkDir(path);

File destFile = new File(path, fileName);

FileUtils.copyFile(file, destFile);

success = true;

}

return success;

}

 

/**

* <b>function:</b>上传指定文件类型的文件

* @author hoojo

* @createDate Oct 10, 2010 12:30:09 PM

* @param fileName 文件名

* @param path 路径

* @param file 文件

* @param allowTypes 类型、后缀数组

* @return 成功上传的文件名

* @throws Exception

*/

public static boolean upload4CopyFile(String fileName, String path, File file, String[] allowTypes) throws Exception {

boolean success = false;

if (validTypeByName(fileName, allowTypes)) {

success = upload4CopyFile(fileName, path, file);

}

return success;

}

 

/**

* <b>function:</b> 根据文件名和类型数组验证文件类型是否合法,flag是否忽略大小写

* @author hoojo

* @createDate Oct 10, 2010 11:54:54 AM

* @param fileName 文件名

* @param allowTypes 类型数组

* @param flag 是否获得大小写

* @return 是否验证通过

*/

public static boolean validTypeByName(String fileName, String[] allowTypes, boolean flag) {

String suffix = getType(fileName);

boolean valid = false;

if (allowTypes.length > 0 && "*" .equals(allowTypes[0])) {

valid = true;

} else {

for (String type : allowTypes) {

if (flag) {//不区分大小写后缀

if (suffix != null && suffix.equalsIgnoreCase(type)) {

valid = true;

break ;

}

} else {//严格区分大小写

if (suffix != null && suffix.equals(type)) {

valid = true;

break ;

}

}

}

}

return valid;

}

 

/**

* <b>function:</b>根据文件名称和类型数组验证文件类型是否合法

* @author hoojo

* @createDate Oct 10, 2010 10:27:17 AM

* @param fileName 文件名

* @param allowTypes 文件类型数组

* @return 是否合法

*/

public static boolean validTypeByName(String fileName, String[] allowTypes) {

return validTypeByName(fileName, allowTypes, true);

}

 

/**

* <b>function:</b> 根据后缀和类型数组验证文件类型是否合法,flag是否区分后缀大小写,true严格大小写

* @author hoojo

* @createDate Oct 10, 2010 12:00:10 PM

* @param suffix 后缀名

* @param allowTypes 文件类型数组

* @param flag 是否区分大小写

* @return 是否合法

*/

public static boolean validTypeByPostfix(String suffix, String[] allowTypes, boolean flag) {

boolean valid = false;

if (allowTypes.length > 0 && "*" .equals(allowTypes[0])) {

valid = true;

} else {

for (String type : allowTypes) {

if (flag) {//不区分大小写后缀

if (suffix != null && suffix.equalsIgnoreCase(type)) {

valid = true;

break ;

}

} else {//严格区分大小写

if (suffix != null && suffix.equals(type)) {

valid = true;

break ;

}

}

}

}

return valid;

}

 

/**

* <b>function:</b>根据文件后缀名和类型数组,验证文件类型是否合法

* @author hoojo

* @createDate Oct 10, 2010 10:25:32 AM

* @param suffix 后缀名

* @param allowTypes 类型数组

* @return 是否合法

*/

public static boolean validTypeByPostfix(String suffix, String[] allowTypes) {

return validTypeByPostfix(suffix, allowTypes, true);

}

 

/**

* <b>function:</b>验证当前后缀、文件类型是否是图片类型

* typeImages 可以设置图片类型

* @author hoojo

* @createDate Oct 10, 2010 12:17:18 PM

* @param suffix 验证文件的后缀

* @return 是否合法

*/

public static boolean validTypeByPostfix4Images(String suffix) {

return validTypeByPostfix(suffix, typeImages);

}

 

/**

* <b>function:</b>验证当前后缀、文件类型是否是非图片类型(常用办公文件类型)

* typeOthers 可以设置文件类型

* @author hoojo

* @createDate Oct 10, 2010 12:18:18 PM

* @param suffix 验证文件的后缀

* @return 是否合法

*/

public static boolean validTypeByPostfix4Others(String suffix) {

return validTypeByPostfix(suffix, typeOthers);

}

 

/**

* <b>function:</b>验证当前文件名、文件类型是否是图片类型

* typeImages 可以设置图片类型

* @author hoojo

* @createDate Oct 10, 2010 12:19:18 PM

* @param fileName 验证文件的名称

* @return 是否合法

*/

public static boolean validTypeByName4Images(String fileName) {

return validTypeByName(fileName, typeImages);

}

 

/**

* <b>function:</b>验证当前文件名称、文件类型是否是非图片类型(常用办公文件类型)

* typeOthers 可以设置文件类型

* @author hoojo

* @createDate Oct 10, 2010 12:21:22 PM

* @param fileName 验证文件的名称

* @return 是否合法

*/

public static boolean validTypeByName4Others(String fileName) {

return validTypeByName(fileName, typeOthers);

}

 

/**

* <b>function:</b>传递一个路径和文件名称,删除该文件

* @author hoojo

* @createDate Oct 10, 2010 10:47:57 AM

* @param fileName 文件名称

* @param path 路径

* @return 是否删除成功

*/

public static boolean removeFile(String fileName, String path) {

boolean flag = false;

if (isFileExist(fileName, path)) {

File file = new File(getDoPath(path) + fileName);

flag = file.delete();

}

return flag;

}

 

/**

* <b>function:</b>删除当前文件

* @author hoojo

* @createDate Oct 10, 2010 10:49:54 AM

* @param file 要删除的文件

* @return 是否删除成功

*/

public static boolean removeFile(File file) {

boolean flag = false;

if (file != null && file.exists()) {

flag = file.delete();

}

return flag;

}

 

/**

* <b>function:</b>删除某个文件

* @author hoojo

* @createDate Oct 12, 2010 9:33:06 PM

* @param path 传递该文件路径

* @return 删除是否成功

*/

public static boolean removeFile(String path) {

return removeFile(new File(path));

}

 

/**

* <b>function:</b>删除当前文件下面所有文件

* @author hoojo

* @createDate Oct 12, 2010 9:27:33 PM

* @param file File 要删除的文件夹下面文件的文件对象

* @return 是否删除成功,如果有一个文件删除失败,将返回false

*/

public static boolean removeFile4Dir(File file) {

boolean flag = false;

if (file != null && file.exists() && file.isDirectory()) {

File[] allFile = file.listFiles();

for (File f : allFile) {

flag = f.delete();

if (!flag) {

System.err.println("删除文件" + f.getAbsolutePath() + "出错了!" );

break ;

}

}

}

return flag;

}

 

/**

* <b>function:</b>删除当前目录下所有文件

* @author hoojo

* @createDate Oct 12, 2010 9:34:41 PM

* @param path 目录、路径

* @return 是否成功

*/

public static boolean removeFile4Dir(String path) {

return removeFile4Dir(new File(path));

}

 

/**

* <b>function:</b>删除某个文件夹下的所有文件(除目录),包含子文件夹的文件

* @author hoojo

* @createDate Oct 12, 2010 9:30:01 PM

* @param file 即将删除文件夹对象

* @return 是否删除成功

*/

public static boolean removeAllFile4Dir(File file) {

boolean flag = false;

if (file != null && file.exists() && file.isDirectory()) {

File[] allFile = file.listFiles();

for (File f : allFile) {

if (!f.isDirectory()) {

flag = f.delete();

} else {

flag = removeAllFile4Dir(f);

}

if (!flag) {

System.err.println("删除文件" + f.getAbsolutePath() + "出错了!" );

break ;

}

}

}

return flag;

}

 

/**

* <b>function:</b>删除某个目录下所有文件(不包含文件夹,包含文件夹下的文件)

* @author hoojo

* @createDate Oct 12, 2010 9:36:17 PM

* @param path

* @return

*/

public static boolean removeAllFile4Dir(String path) {

return removeAllFile4Dir(new File(path));

}

 

/**

* <b>function:</b> 传入一个文件名,得到这个文件名称的后缀

* @author hoojo

* @createDate Oct 9, 2010 11:30:46 PM

* @param fileName 文件名

* @return 后缀名

*/

public static String getSuffix(String fileName) {

int index = fileName.lastIndexOf("." );

if (index != -1) {

String suffix = fileName.substring(index);//后缀

return suffix;

} else {

return null;

}

}

 

/**

* <b>function:</b>和文件后缀一样,不同的是没有“.”

* @author hoojo

* @createDate Oct 10, 2010 2:42:43 PM

* @param fileName 文件名称

* @return

*/

public static String getType(String fileName) {

int index = fileName.lastIndexOf("." );

if (index != -1) {

String suffix = fileName.substring(index + 1);//后缀

return suffix;

} else {

return null;

}

}

 

/**

* <b>function:</b> 传递一个文件名称和一个新名称,组合成一个新的带后缀文件名

* 当传递的文件名没有后缀,会添加默认的后缀

* @author hoojo

* @createDate Oct 9, 2010 10:53:06 PM

* @param fileName 文件名称

* @param newName 新文件名称

* @param nullSuffix 为没有后缀的文件所添加的后缀;eg:txt

* @return String 文件名称

*/

public static String getNewFileName(String fileName, String newName, String nullSuffix) {

String suffix = getSuffix(fileName);

if (suffix != null) {

newName += suffix;

} else {

newName = newName.concat("." ).concat(nullSuffix);

}

return newName;

}

 

/**

* <b>function:</b> 利用uuid产生一个随机的name

* @author hoojo

* @createDate Oct 9, 2010 10:45:27 PM

* @param fileName 带后缀的文件名称

* @return String 随机生成的name

*/

public static String getRandomName(String fileName) {

String randomName = UUID.randomUUID().toString();

return getNewFileName(fileName, randomName, "txt" );

}

 

/**

* <b>function:</b> 用当前日期、时间和1000以内的随机数组合成的文件名称

* @author hoojo

* @createDate Oct 9, 2010 11:01:47 PM

* @param fileName 文件名称

* @return 新文件名称

*/

public static String getNumberName(String fileName) {

SimpleDateFormat format = new SimpleDateFormat("yyMMddhhmmss" );

int rand = new Random().nextInt(1000);

String numberName = format.format(new Date()) + rand;

return getNewFileName(fileName, numberName, "txt" );

}

 

/**

* <b>function:</b>判断该文件是否存在

* @author hoojo

* @createDate Oct 10, 2010 12:00:44 AM

* @param fileName 文件名称

* @param path 目录

* @return 是否存在

*/

public static boolean isFileExist(String fileName, String path) {

File file = new File(getDoPath(path) + fileName);

return file.exists();

}

 

/**

* <b>function:</b>返回可用的文件名

* @author hoojo

* @createDate Oct 10, 2010 1:02:45 AM

* @param fileName 文件名

* @param path 路径

* @return 可用文件名

*/

public static String getBracketFileName(String fileName, String path) {

return getBracketFileName(fileName, fileName, path, 1);

}

 

 

/**

* <b>function:</b>递归处理文件名称,直到名称不重复(对文件名、目录文件夹都可用)

* eg: a.txt --> a(1).txt

* 文件夹upload--> 文件夹upload(1)

* @author hoojo

* @createDate Oct 10, 2010 12:56:27 AM

* @param fileName 文件名称

* @param path 文件路径

* @param num 累加数字,种子

* @return 返回没有重复的名称

*/

public static String getBracketFileName(String fileName, String bracketName, String path, int num) {

boolean exist = isFileExist(bracketName, path);

if (exist) {

int index = fileName.lastIndexOf("." );

String suffix = "" ;

bracketName = fileName;

if (index != -1) {

suffix = fileName.substring(index);

bracketName = fileName.substring(0, index);

}

bracketName += "(" + num + ")" + suffix;

num++;

bracketName = getBracketFileName(fileName, bracketName, path, num);

}

return bracketName;

}

 

/**

* <b>function:</b>处理后的系统文件路径

* @author hoojo

* @createDate Oct 10, 2010 12:49:31 AM

* @param path 文件路径

* @return 返回处理后的路径

*/

public static String getDoPath(String path) {

path = path.replace("\\", " /");

String lastChar = path.substring(path.length() - 1);

if (!"/".equals(lastChar)) {

path += "/";

}

return path;

}

 

/**

* <b>function:</b> 创建指定的path路径目录

* @author hoojo

* @createDate Oct 9, 2010 11:03:49 PM

* @param path 目录、路径

* @return 是否创建成功

* @throws Exception

*/

public static boolean mkDir(String path) throws Exception {

File file = null;

try {

file = new File(path);

if (!file.exists()) {

return file.mkdirs();

}

} catch (RuntimeException e) {

throw e;

} finally {

file = null;

}

return false;

}

 

/**

* 创建缩略图

* @param file 上传的文件流

* @param height 最小的尺寸

* @throws IOException

*/

/*public static void writeBrevityPic(File file, float width, float height) throws IOException {

Image src = javax.imageio.ImageIO.read(file); // 构造Image对象

int old_w = src.getWidth(null); // 得到源图宽

int old_h = src.getHeight(null);

int new_w = 0;

int new_h = 0; // 得到源图长

float tempdouble;

if (old_w >= old_h) {

tempdouble = old_w / width;

} else {

tempdouble = old_h / height;

}

 

if (old_w >= width || old_h >= height) { // 如果文件小于锁略图的尺寸则复制即可

new_w = Math.round(old_w / tempdouble);

new_h = Math.round(old_h / tempdouble);// 计算新图长宽

while (new_w > width && new_h > height) {

if (new_w > width) {

tempdouble = new_w / width;

new_w = Math.round(new_w / tempdouble);

new_h = Math.round(new_h / tempdouble);

}

if (new_h > height) {

tempdouble = new_h / height;

new_w = Math.round(new_w / tempdouble);

new_h = Math.round(new_h / tempdouble);

}

}

BufferedImage tag = new BufferedImage(new_w, new_h, BufferedImage.TYPE_INT_RGB);

tag.getGraphics().drawImage(src, 0, 0, new_w, new_h, null); // 绘制缩小后的图

FileOutputStream newimage = new FileOutputStream(file); // 输出到文件流

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);

JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(tag);

param.setQuality((float) (100 / 100.0), true);// 设置图片质量,100最大,默认70

encoder.encode(tag, param);

encoder.encode(tag); // 将JPEG编码

newimage.close();

}

}*/

 

public static void main(String[] args) throws Exception {

String path = "F:/Example Exercise/ExtJS/MultiUpload/WebRoot/upload";

//System.out.println(mkDir(path));

System.out.println(getDoPath(path));

System.out.println(getBracketFileName("a.txt", getDoPath(path)));

System.out.println(getNumberName("a.jpg"));

System.out.println(getNumberName("a.jpg"));

System.out.println(getNewFileName("a", " bbb", " txt"));

System.out.println(getRandomName("a.htm"));

System.out.println(getSuffix("a.jpg"));

System.out.println(getType("a.jpg"));

//List<File> list = getFiles(path);

//List<File> list = getFiles(path, "xml");

//List<File> list = getFiles(path, typeImages);

//List<File> list = getFiles(path, typeOthers);

//List<File> list = getFiles(path, typeImages, false);

/*List<File> list = getFiles(path, "GIF", true);

for (File f : list) {

System.out.println("Name:" + f.getName());

System.out.println(f.getAbsolutePath() + "#" + f.getPath());

}*/

System.out.println(removeFile("a.txt", path));

System.out.println("#############################################");

System.out.println("###" + validTypeByName(" a", new String[]{" *"}));

System.out.println("###" + validTypeByName(" a.JPG", typeImages));

System.out.println("###" + validTypeByName(" a.JPG", typeImages, false));

System.out.println(validTypeByPostfix("cals", new String[]{" *", " b"}));

System.out.println(validTypeByPostfix("b", new String[]{" cal", " B"}, false));

}

}


版权所有,转载请注明出处 本文出自: http://www.cnblogs.com/hoojo/archive/2012/02/10/2345234.html

分享到:
评论

相关推荐

    Java使用NFS实现上传、下载、读取文件工具类

    1. 文件上传(File Upload) 2. 文件下载(File Download) 3. 文件读取(File Reading) 4、优点: 封装性:工具类封装了NFS相关的复杂连接、认证和I/O操作细节,使得业务层代码无需关心底层通信协议,只需通过...

    java 文件上传工具类 文件及文本数据

    以上是关于Java文件上传工具类处理文件及文本数据的主要知识点。理解并熟练掌握这些概念,可以帮助开发者创建高效、安全的文件上传系统。在实际开发中,还需要根据具体需求和项目规范来定制和扩展这些基础功能。

    图片的上传下载及工具类

    本文将详细讲解如何实现图片的上传与下载,并介绍一个实用的工具类`UpOrDownLoadUtil.java`。 首先,我们来探讨图片上传的过程。在Web应用中,通常用户通过表单提交图片文件到服务器。这个过程涉及到前端和后端两个...

    图片、文件上传、数据库连接工具类

    一个数据库连接工具类可以简化数据库操作,提供连接池管理,事务处理等功能。 - **JDBC API**:包括Connection、Statement、PreparedStatement和ResultSet等接口,分别用于建立数据库连接,执行SQL语句和处理查询...

    SFTP上传下载文件工具

    "SFTP上传下载文件工具"通常指的是支持SFTP协议的软件应用,这些应用使得用户能够方便地在本地计算机和远程服务器之间进行文件的上传和下载。描述中提到的"可直接文件夹传输"功能,意味着这款工具不仅支持单个文件的...

    七牛云上传需要的工具类

    【七牛云上传工具类详解】 ...总之,七牛云上传工具类是针对七牛云服务的一个实用工具,旨在简化文件上传操作,提高开发效率。它涵盖了七牛云服务的基本操作,并考虑了各种异常情况,是开发七牛云应用的重要辅助工具。

    Java实现的文件上传下载工具类完整实例【上传文件自动命名】

    首先,需要创建一个文件上传工具类,用于处理文件上传操作。在文件上传过程中,需要获取文件的路径和文件名,然后将文件上传到服务器上。 其次,需要对文件名进行处理,以避免文件名在服务器中重复。为此,采用...

    C#实现的文件上传下载工具类完整实例【上传文件自动命名】

    C#实现的文件上传下载工具类完整实例【上传文件自动命名】 本文主要介绍了C#实现的文件上传下载工具类,通过完整的实例形式分析了C#操作文件上传与下载功能,并且还可以针对上传文件自动命名以避免服务器中的文件名...

    java大文件分块上传断点续传demo

    在Java开发中,大文件上传是一项常见的需求,尤其是在云存储、文件分享等场景下。由于网络环境的不稳定性,单纯的一次性上传大文件可能会因为网络中断而导致上传失败,这时就需要断点续传功能来保证文件传输的可靠性...

    文件上传工具

    文件上传工具,自己使用的可以分享出来大家看看,属于那种比较简单的工具,本地上传

    文件上传下载servlet自用

    总的来说,"文件上传下载servlet自用"项目是一个实现Web应用中文件交互的示例,涉及到Servlet、文件I/O操作以及HTTP协议的理解。在实际开发中,这样的功能可以广泛应用于用户资料上传、文件共享、云存储等多种场景。...

    道客巴巴批量上传工具

    总的来说,"道客巴巴批量上传工具"是提高文档分享效率的有效手段,对于经常在该平台活跃的用户来说,它无疑是一个值得尝试的实用工具。正确使用它,可以让你的文档更快地触达目标读者,提升你在道客巴巴平台的影响力...

    阿里云对象存储静态工具类(AliOSSUtils.java)快速上手!!!

    根据官网和网上分享的代码自己整理了一个阿里云OSS工具类,自动创建标准公开权限的存储空间,支持上传图片,音频,视频,PDF各种文件,批量上传,上传后支持在线预览,文件路径处理,浏览器文件下载(支持源文件中文...

    文件上传下载工具

    在IT行业中,文件上传下载工具是常见的应用,尤其在服务器管理、数据共享和协作工作中扮演着重要角色。本文将深入探讨使用C++编程语言编写的文件上传下载工具,以及与其相关的技术要点。 C++是一种通用的、面向对象...

    服务器上传下载文件工具.rar

    "服务器上传下载文件工具.rar" 提供了一种方便的方法来处理这类任务。这个压缩包很可能是包含了一款用于FTP(File Transfer Protocol)的软件或者脚本,FTP是一种广泛使用的互联网协议,专门用于在不同计算机之间...

    上传一个文件试试

    根据给定的信息,本次生成的知识点将围绕文件上传的基本概念、流程及应用场景展开,并结合“实验”这一标签,深入探讨如何进行文件上传测试以及在实际工作中如何利用文件上传功能。 ### 文件上传概述 文件上传是...

    Java-Android工具类

    Preference工具类通常封装了如`putString()`, `putInt()`, `getBoolean()`等方法,使得设置和获取共享偏好设置更为方便。例如,`saveSetting(key, value)`可以保存键值对,`getSetting(key)`则可以读取相应的设置值...

    PHP文件上传类,PHP文件上传类

    这个"PHP文件上传类"就是这样一个工具,它对PHP的文件上传功能进行了封装,使得开发者只需简单设置参数即可实现文件上传。 1. **文件上传基础** - PHP中的文件上传是通过`$_FILES`全局数组来处理的,它包含了关于...

    c# 上传大文件

    在IT行业中,大文件上传是一项常见的需求,尤其是在云计算、文件分享和协作平台等领域。C#作为.NET框架的主要编程语言,提供了丰富的工具和技术来处理大文件的上传。在本篇文章中,我们将深入探讨如何在C#中实现大...

    -远程文件共享工具-

    标题中的“-远程文件共享工具-”指的是用于在网络上分享文件的工具,这类工具允许用户将本地计算机上的文件通过网络提供给他人访问或下载。在描述中提到的功能是生成临时网址,然后将这个网址发送给朋友,使他们...

Global site tag (gtag.js) - Google Analytics