发表于: 2017-11-19 23:17:49
1 665
今天完成的事情:
完成腾讯图片上传,将师兄工具类改为我自己用的,包含内容比以往接口都多,,,使用的是数据流的传输方法上传.将前端接收到的文件转换为数据流的形式,同时这种形式可以保存在缓存当中,下次可以直接从缓存中取出该数据流...
@RequestMapping(value = "/a/u/tengXunimage" , method = RequestMethod.POST)
public void uploadFiles(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)throws ServletException,IOException {
httpServletResponse.setCharacterEncoding("UTF-8");
httpServletResponse.setContentType("text/html;charset=utf-8");
loggerStudentController.info("开始上传");
OutputStream out = httpServletResponse.getOutputStream();
loggerStudentController.info(out);
String message = fileUtile.readPicture(httpServletRequest);
loggerStudentController.info("message: " + message);
//查看在message里的第几个字符起为"u_" ,下标从0开始,如果没有就返回-1
int sign = message.indexOf("u_");
loggerStudentController.info("sign: " + sign);
if (sign != -1) {
String token = CookieUtile.getCookieValue(httpServletRequest, "token");
String s1 = null;
String s2 = null;
// if (token != null) {
String mes = null;
try {
mes = desUtil.decrypt(token);
} catch (Exception e) {
e.printStackTrace();
}
String[] array = mes.split(":");
// s1 = array[0];
s2 = array[1];
loggerStudentController.info("账户" + s2);
//默认不指定key的情况下,以文件内容的hash值作为文件名
String key = s2;
if (message != null) {
Student student = new Student();
student.setUserName(s2);
String urlImage = "agan1-1253523354.cos.ap-chengdu.myqcloud.com/image" + s2;
student.setImage(urlImage);
boolean i = studentService.updateStudentImage(student);
loggerStudentController.info("更改数据库图片" + i);
loggerStudentController.info("更改的数据量 : " + i);
out.write(("<script charset=\"utf-8\" language='javaScript'> alert('文件上传成功');</script>").getBytes());
httpServletResponse.setHeader("refresh", "0;url=/a/home");
} else {
out.write(("<script charset=\"utf-8\" language='javaScript'> alert('" + message + "');</script>").getBytes());
}
}
}
奇怪的是这次试用之前的jsp页面上传是可以获取从前端传送过来的值.还是不确定是哪里的问题.
七牛云的批量获取存储空间文件,更改工具类.
Configuration cfg = new Configuration(Zone.zone0());
//...其他参数参考类注释
String accessKey = "FR45o3bvuh_sZLqRe0mkqYyIixtkzaFGaqif20-e";
String secretKey = "MW1nM3YrmgXhKO2IoQv0fIdM4_FdKcJerx6V3Zpu";
String bucket = "packagedemo";
Auth auth = Auth.create(accessKey, secretKey);
BucketManager bucketManager = new BucketManager(auth, cfg);
//文件名前缀
String prefix = "";
//每次迭代的长度限制,最大1000,推荐值 1000
int limit = 1000;
//指定目录分隔符,列出所有公共前缀(模拟列出目录效果)。缺省值为空字符串
String delimiter = "";
//列举空间文件列表
BucketManager.FileListIterator fileListIterator = bucketManager.createFileListIterator(bucket, prefix, limit, delimiter);
FileInfo[] items = fileListIterator.next();
while (fileListIterator.hasNext()) {
//处理获取的file list结果
for (FileInfo item : items) {
loggerGetQiNiuImage.info("文件名: " + item.key);
loggerGetQiNiuImage.info("文件hash: " + item.hash);
loggerGetQiNiuImage.info(item.fsize);
loggerGetQiNiuImage.info("文件类型: " + item.mimeType);
loggerGetQiNiuImage.info("放入时间: " + item.putTime);
loggerGetQiNiuImage.info(item.endUser);
// 拼接连接
String qiNiImageUrl = "http://ozi46fb63.bkt.clouddn.com/" + item.key;
明天的计划:
将图片迁移完成,结束任务7
准备小课堂.
遇到的困难:
最后一个还是jsp页面的传值问题,
收获.
补的小知识点比较多.
Java中字符串中子串的查找共有四种方法,如下:
1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。
2、int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。
3、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。
4、int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。
任务进度:任务7步骤2
任务开始时间:2017-11-13
预计demo时间:2017-11-21
是否有延期风险:暂无
禅道:http://task.ptteng.com/zentao/task-view-13480.html
评论