Web开发如何上传图片


麻烦给出一个完整的流程,从如何提交图片,到如何存储,如何从数据库中取出。

我的想法是图片本身存储到一个文件夹下,然后数据库中存储其路径,在页面上也很容易展示出来。
但有以下问题:
1. 用户上传时图片名可能会有重复,所以这个名字我应该去命名,但不知道如何弄
2. 用户上传的图片格式五花八门,会不会造成一些麻烦?

希望大家给出简单的解决办法,不考虑性能等,能用就行。

web前端开发 mysql java-ee

Ss破o军sS 10 years, 6 months ago

首先不明白你要的解决办法是那种,要代码?要思路?要方案?要框架?要例子?要现成的?

1:图片的原名会再用到吗?如果不用到,那就时间戳,UUID,路径加名字HASH,很多方式都行,如果需要保留原名,1楼的方式就可以,你也可以鬼才的直接把名字,图片格式等直接放存储的文件名里
2:图片格式你可以做限制,判断,前端做,后端再做,不行你还可以把图片自己重新输出成你想要的格式

3:恩,百度一下就有很多现成的

sbthere answered 10 years, 6 months ago

未知生物体 answered 10 years, 6 months ago

这边找到了一个 demo ,copy会报路径错误,需要把 FileUploadServlet.java中 File file = new File(sc.getRealPath("/") + savePath, tempFile.getName()) sc.getRealPath("/") 去掉,改为 File file = new File(savePath, my_string) ,savepath指存储路径,可在web.xml中配置,mystring指自己定义的文件名,自由选择更改。

飞鸟开飞机 answered 10 years, 6 months ago

图片格式图片名五花八门,可以考虑从名字服务器上获取。

Model-L answered 10 years, 6 months ago

  1. 建议存储的时候命名成UUID,原文件名记录在数据库中下载时候再命名回来。
  2. 当然上传时候要加格式过滤器。
バイト戦士 answered 10 years, 6 months ago

其实你问的这些都不是问题,在处理图片上传的时候可以限制图片格式,上传之后可以对图片进行重命名,通常用时间戳,这样就能保证不重复。

熊猫汽水萌萌哒 answered 10 years, 6 months ago

直接用数据库id命名就可以,再加2个字段,一个存原名,一个存ContentType,提供下载的时候按存储的这2个字段复原就行了

瀬川理香子 answered 10 years, 6 months ago

Your Answer