这些笔记都是实用的技术细节:
图片处理流程,无外乎几个步骤
1、web上传图片
2、服务端接收图片
3、服务端处理图片
4、保存图片
上传图片:
一句话:设置form的属性enctype为multipart/form-data
在HTML中,使用表单Form主要是用来向服务器提交数据,格式如下:
<FORM ACTION="URL"
METHOD="GET|POST"
ENCTYPE="…" TARGET="...">
. . .
</FORM>
enctype指定了表单提交给服务器时的内容形式(Content-Type),默认值是"application/x-www-form-urlencoded",这时,表单信息一般采用URL编码制。
但是,当向服务器传送图片或文件这样包含非ASCII字符或二进制数的数据时,根据RFC1867规定,就必须使用“multipart/form-data”内容类型。
其实无论是默认表单信息,还是图片文件,这些内容都是装载在HTTP协议的正文内容部分,都可以看成HTTP协议携带的对象,只是两种正文内容形式不一样。前者是String字符串类型,而后者则是一个通用的数据对象类型(Object)。在以后章节中将专门讨论HTTP协议装载数据对象的底层细节。
使用“multipart/form-data”上传文件的格式写法如下:
<FORM ACTION="URL" METHOD="GET|POST" ENCTYPE=" multipart/form-data ">
</FORM>
文件通过HTTP协议传送到服务器端后,需要在服务器端对该文件进行专门的接受。HttpServletRequest没有提供直接获取文件数据的方法,因此需要开发专门的服务器文件处理组件。
目前有两种上传文件处理组件:一种是基于完全JSP结构的,使用JSP来处理上传的文件,以SmartUpload(http://www.jspsmart.com)最常用;还有一种是完全的JavaBeans组件:Cos文件上传组件包(http://www.servlets.com/cos/index.html),Cos可以使用在JSP中,也可以使用在Servlet或Servlet Filter中。
由于在实际应用中,文件上传功能往往和其他正常表单参数一起混合使用,而不是独立使用的。因此,可以设定一个Servlet专门用来处理这类混合表单的请求,在将文件接受处理后,自动导向到处理表单正常参数的JSP/Servlet去处理。
表单调用示例如下:
method="post" enctype="multipart/form-data">
在这个表单中,既有文件提交,也有username这样正常的参数需要提交,提交的Servlet名为multipartformserv。
接收图片:
当然是在servlet处理,这里借助类com.oreilly.servlet.MultipartRequest:
mrequest
Hashtable hashtable=
Enumeration e=
String imgname=(String)e.nextElement();
String imgfile=
hashtable.put(imgname,imgfile);
}
}
}
这样,把图片名称的映射放置于一个hashtable中
new Hashtable();mrequest.getFileNames();while (e.hasMoreElements()) {mrequest.getFilesystemName(imgname);if (imgfile!=null){// System.out.println(imgname+"="+imgfile);return hashtable;=
new MultipartRequest(request,uploaddir,size * 1024);
其他继续
分享到:
相关推荐
### Web前端基础学习笔记 #### 一、HTML ##### 1. HTML简介 - **网站与网页**: 网页是使用HTML标记语言编写的文件,用于描述同一范畴内的信息或数据。多个网页组成一个网站。 - **HTML**: 超文本标记语言,是一种...
### Python Web 开发基础知识点详解 #### 一、Python Web 开发概述 Python 是一种广泛应用于 Web 开发的编程语言,其简洁性、易读性和强大的功能使其成为开发 Web 应用程序的理想选择之一。本章节主要介绍如何使用...
例如,用户可以上传图片,Vue组件将图片数据预处理后传递给后端的TensorFlow模型进行预测,然后将预测结果展示给用户。 为了整合TensorFlow 2、Keras和Vue.js,你需要设置一个前后端分离的架构。后端通常由Python...
- **上传**:系统需要支持多种格式的图片上传,通常会进行文件类型的检查,防止非法文件上传。 - **存储**:图片存储一般采用云存储或本地存储,可能涉及图片的重命名、缩略图生成等操作。 - **分类**:通过分类...
web 网站文件包含漏洞和攻击-运维安全详细笔记总结 文件包含漏洞是指攻击者通过上传恶意文件,利用服务器的文件包含功能来执行恶意代码,从而获取服务器的控制权。文件包含漏洞可以分为本地文件包含漏洞和远程文件...
在线云笔记可能包含文件上传功能,如图片、PDF或其他附件。Node.js配合Multer或Busboy等库可以处理文件上传,而存储则可以使用云存储服务如Amazon S3或Google Cloud Storage,也可以在本地或NAS设备上搭建文件存储。...
### JAVA Web 开发笔记 #### 一、HTML基础 ##### 1.1 什么是HTML? HTML,全称为HyperText Markup Language(超文本标记语言),是一种用于创建网页的标准标记语言。HTML文档是由一系列的标签组成的,这些标签...
文件上传通常涉及到表单的POST请求,服务器端通过`HttpServletRequest`的`getPart()`或`getParts()`方法来获取上传的文件。 生成随机验证码通常结合`HttpServletResponse`的`getOutputStream()`或`getWriter()`,...
**文件上传和下载**:在Web程序设计中,用户可能需要上传文件(如图片、文档等),或从服务器下载文件。这通常涉及到表单提交、文件流处理和错误处理等技术。\n\n10. **JSP的MVC设计架构**:MVC(Model-View-...
【标题】"jx-ocr前端开发笔记"指的是一个关于jx_ocr项目的前端开发学习资料,这通常涉及到使用JavaScript、HTML、CSS等技术在Web环境中实现OCR(Optical Character Recognition,光学字符识别)功能。OCR是将图像中...
在这个场景下,"编码实现图片上传"是一个关键的功能点,它涉及到Web开发中的文件上传技术。下面将详细讨论这个主题。 首先,我们来看"课工厂新闻管理系统",这可能是一个教学平台或工具,用于教授如何开发一个新闻...
Java Web 学习笔记主要涉及了文件上传这一关键知识点,这是在开发Web应用程序时常见的功能,比如用户上传头像、图片或附件等。文件上传在HTML表单中通过特定的方式实现,包括以下几点: 1. **表单提交方式**:为了...
- **图片爬取**:抓取网页中的图片,存储到本地或上传到云存储。 - **新闻网站爬虫**:爬取新闻网站的文章标题、内容和发布时间,构建新闻数据库。 通过学习以上内容,你将能够构建自己的Python网络爬虫,从网页...
- 静态资源处理(default-servlet-handler):处理静态资源请求,保证静态资源如图片、CSS和JavaScript等能被正确处理。 - 注解驱动(annotation-driven):启用注解驱动的Spring MVC,使得能够使用@...
静态文件(如CSS、JavaScript和图片)通过`STATICFILES`配置进行管理,而用户上传的媒体文件(如订单照片)则使用`MEDIA_ROOT`和`MEDIA_URL`配置。 10. **数据库操作** Django使用ORM(对象关系映射)技术,简化...
这篇博客文章可能是关于如何在FCKeditor中处理中文文件名的图片显示问题,因为这在某些情况下可能会遇到一些挑战。 **FCKeditor基础知识** 1. **安装与集成**:FCKeditor可以通过下载官方发布的源码进行安装,然后...
1. "说明.txt":通常包含关于项目的基本信息、使用指南或开发者笔记,可能包括如何运行、配置、部署以及可能遇到的问题和解决方案。 2. "PicGo_dev.zip":很可能包含了项目的源代码或开发版本,名字中的"Dev"通常...
1. 文本、视频和图片笔记发布:系统需支持富文本编辑器,用户可以上传文本、图片和视频,这些内容通过Mybatis存入数据库。图片和视频可能需要额外的文件存储服务,如阿里云OSS或AWS S3,以保证大文件的稳定存储。 2....
标题中的“支持截图粘贴上传图片到七牛”是指一种功能,它允许用户在使用VSCode(Visual Studio Code)编辑Markdown文件时,通过截图并直接粘贴的方式将图片上传到七牛云存储服务。七牛云是知名的云存储平台,为...
从压缩包中的“使用须知.txt”文件,我们可以期待找到关于如何安装和运行此系统的指南,可能包括设置数据库连接、上传文件到服务器以及运行初始配置的步骤。而“132684473952069426”可能是一个错误的或不完整的...