Web开发如何上传图片

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

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

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

阅读 12.4k
7 个回答

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

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

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

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

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

新手上路,请多包涵
  1. 建议存储的时候命名成UUID,原文件名记录在数据库中下载时候再命名回来。
  2. 当然上传时候要加格式过滤器。

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

这边找到了一个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指自己定义的文件名,自由选择更改。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题