上传中文名图片,怎样通过hash转换成数字或英文名?

加入我们上传了一个图片
把文件名和路径存到数据库中
但是,但浏览器读取该图片时不能显示
我想通过一种技术,把真实的名字保存到数据库中
把生成的改后的路径名也存到数据库,通过数据库来对应
因为经常看到下载的图片名是杂乱无章的数字或字母
谁能告诉我怎么做?

举个例子:
上传 你好.jpg
存到数据库里是
name: 你好
url:..../123124124123123.jpg

怎样实现呢?

你可以使用最简单的方式,以uuid来生成文件名,uuid可以保证生成的字符串id唯一

java.util.UUID

常规的,把图片的名字换成当前时间的字符串。
比如 你好.jpg
换成 201003191609.jpg,

首先我没明白你的意思,其次如何图片上传并存储的话,应该存储的是二进制,那么在显示图片的时候名字是你自己指定的,你指定了什么就是什么。

          [code="java"] String   dtr="你好.jsp";   
              String   y[]=dtr.split("\\.");   
              dtr=y[0]+(new Date()).toString()+"."+y[1];  [/code] 

hash method可以是: java.util. UUID.randomUUID().toString();

[quote]但是,但浏览器读取该图片时不能显示 [/quote]
不明白是什么意思? 是上传后不能马上预览?

你想达到一种什么效果呢?

[code="java"]System.out.println(Long.toHexString(System.currentTimeMillis()));[/code]

[color=blue][b]看是不是你希望的?[/b][/color]