【代码段】图片上传并显示

安卓开发者必看:Win11最新Fastboot驱动安装避坑指南(含Android Bootloader Interface选择技巧) 本文为安卓开发者提供了Windows 11系统下Fastboot驱动安装的详细指南,特别针对Android Bootloader Interface选择技巧和多设备并发连接时的驱动冲突问题。通过解析Windows 11的特殊驱动验证机制,推荐使用Google官方USB驱动,并提供安装流程、版本选择建议及疑难问题排查方法,帮助开发者高效完成开发环境配置。 阅读详情

// 代码上传并显示:

项目目录:

jsp:只有一个文件。

fileUpload.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action = "upload" method = "post" encType="multipart/form-data">
		<input type="file" name="filepath">
		<input type="submit" value="提交">   
	</form>
</body>
</html>

 

src:只有一个文件。

UploadServlet.java:


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
 * Servlet implementation class UploadServlet
 */
@WebServlet("/UploadServlet")
public class UploadServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		// 1. 文件名
		String filename = null;
		// 2. 读取 request  list
		DiskFileItemFactory factory = new DiskFileItemFactory();
		ServletFileUpload upload = new ServletFileUpload(factory);
		factory.setSizeThreshold(1024*1024);
		List list = null;
		try {
			list = upload.parseRequest(request);
			System.out.println(list.toString());
		} catch (FileUploadException e) {
			e.printStackTrace();
		}
		// 3.  迭代到 FileItem
		Iterator iterator = list.iterator();
		while(iterator.hasNext()){
			FileItem fileItem = (FileItem) iterator.next();
			if(!fileItem.isFormField()){ // // 4. 判断   表单域返回 true  文件域返回 false
				// 5. 新建文件
				filename = System.currentTimeMillis() + ".jpg";
				String floder = request.getServletContext().getRealPath("floder");
				File file = new File(floder, filename);
				file.getParentFile().mkdirs();
				// 6. 流操作
				InputStream is = fileItem.getInputStream();
				FileOutputStream fos = new FileOutputStream(file);
				// 7. 写入
				byte[] b = new byte[1024*1024];
				int length = 0;
				while(-1 != (length = is.read(b))){
					fos.write(b, 0, length);
				}
				fos.close();
			}else{
				System.out.println(fileItem.getFieldName());
				String value = fileItem.getString();
				value = new String(value.getBytes("ISO-8859-1"), "UTf-8");
				System.out.println(value);
			}
		}
		// 9. 显示
		String html = "<img width='200' height='200' src='floder/%s'>";
		response.setContentType("text/html");
		PrintWriter pw = response.getWriter();
		pw.format(html, filename);
	}

}

 

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>uploadTest_0821</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>UploadServlet</servlet-name>
    <servlet-class>upload.UploadServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>UploadServlet</servlet-name>
    <url-pattern>/upload</url-pattern>
  </servlet-mapping>

</web-app>

效果:

 

 

over

 

点云生成图像 摘要:本文介绍了使用Open3D库将点云投影为RGBD图像的方法。通过project_to_rgbd_image函数,利用小孔相机模型的内参和外参矩阵,实现了点云到彩色图像和深度图的转换。实验使用随机生成的10万个点云数据,通过可视化窗口获取相机参数后,成功生成了对应的RGB图像和深度图像,并使用Matplotlib进行可视化展示。该方法为点云数据处理提供了有效的三维到二维投影方案。 阅读详情

相关推荐

OpenWrt南京电信PPPoE IPv6配置:从零搭建稳定双栈网络

本文详细指导如何在南京电信PPPoE宽带环境下,为OpenWrt路由器配置稳定的IPv6双栈网络。核心在于正确设置WAN6接口为DHCPv6客户端,并请求/60前缀,同时配置LAN口分发地址并放行防火墙关键流量,确保内网设备获得原生IPv6连接。

water的专栏 1339

数据段、代码段、堆栈段、BSS段的区别

本文结合实际的例子讲述一下数据段、代码段、堆栈段以及BSS段。more。

luoganttcc的博客 3706

Apifox 自动化测试新增流程控制条件,复杂测试场景不再是问题

在 if 条件后的输入框填写请求接口得到的变量 viewed ,选择条件为「小于」,输入比较数值 10 ,并在 if 条件下添加「宠物下架处理」步骤。借助新增的自动化测试流程控制条件,测试人员就可以使用 Apifox 去实现更深层更多样的测试应用场景,帮助提升测试效率,减少复杂场景的测试操作。「查询新建宠物」、「修改宠物状态为已售出」和「查询宠物状态是否修改」步骤为当前在售宠物信息盘点的三个标准步骤,所以将这三个步骤合成一组。在循环中添加「查询在售宠物」和「修改宠物状态」步骤;

877

堆栈段、数据段、代码段

malloc在内存的动态存储区中分配一个长度为size字节的连续空间,其参数是无符号整型,返回一个指向所分配的连续空间的起始地址的指针。注意:程序加载运行时,.rodata段和.text段通常合并到一个Segment(Text Segment)中,操作系统将这个Segment的页面只读保护起来,防止意外的改写。4)用const修饰的全局变量是放入常量区的,但是使用const修饰的局部变量只是设置为只读起到防止修改的效果,没有放入常量区。并不给该段的数据分配空间,只是记录数据所需空间的大小。

adsd14654的博客 1万+

SP贴图高效导入Maya:从材质设置到渲染优化的完整流程

本文详细解析了将Substance Painter(SP)贴图高效导入Maya并配合Arnold渲染器的完整工作流。针对SP贴图在Maya中常见的色彩、法线等问题,核心在于对齐两者的PBR“语言”,重点讲解了SP中正确的贴图导出设置(包括色彩空间)以及在Maya中连接aiStandardSurface材质、处理法线贴图、优化渲染的标准化流程,确保材质效果准确无误。

weixin_29201933的博客 554

MATLAB Appdesigner开发独立桌面App全流程(一):以打开串口功能为例介绍Appdesigner的基本使用

本文详细介绍了Appdesigner的基本使用,以串口功能为例介绍按钮回调函数的实现以及控件之间通信的问题

Zhuwany的博客 3万+

C语言的5个内存段你了解吗?嵌入式中的堆栈你熟悉吗?( 代码段/数据段/栈/堆)

这些内存段在程序运行时起着不同的作用,有不同的分配方式和存储内容。对于 C 语言程序员来说,了解这些内存段的特性和用途有助于更好地理解内存管理、变量的存储位置以及程序执行过程中的内存分配情况。

吻等离子的博客 3147

Yandex复杂还原验证码识别

本文分析了Yandex滑动验证码的识别方法,指出其通过JS判断正确滑动位置而非用户交互还原图像。核心思路是通过像素差异分析,将验证码图像重组后(分为3×3或4×4),计算相邻图像间的像素差异,最小值即为正确位置。与前期某象验证码识别方法类似,需结合图像增强技术统一像素直方图。文章强调该方法仅供学习参考,严禁用于违法行为。完整识别流程包括图像重组、像素差异计算等步骤,最终可准确定位正确拼图位置。

码王吴彦祖的博客 284

嵌入式 C 编程必备(1):清晰区分数据段、代码段、堆、栈段和 BSS 段

在嵌入式开发中,进程内存空间包含五种数据区:代码区存储只读指令,数据区存储已初始化全局/静态变量,BSS段存储未初始化全局/静态变量(程序执行前自动初始化为零),堆区用于动态内存分配,栈区存储局部变量、调用参数及返回地址,由操作系统自动管理,各数据区共同支持程序执行。

byte轻骑兵的技术小窝 7144

软件设计师---程序设计语言

软件设计师---程序设计语言

我从不打没有准备的仗! 2万+

SAP_SD模块更改销售订单定价简介

方式优点缺点适用场景MASS简单,无需开发不能触发重新定价逻辑修改特定字段BDC (VA02)可模拟人工操作维护复杂,速度慢少量订单批改稳定、安全需ABAP支持推荐用于批量重新定价VBOF标准重算返利仅适返利类条件返利更新通过本文,我们了解了 SAP 的[SAP_SD模块更改销售订单定价]的基本概念和应用方法。希望这些信息能帮助您在实际工作中更好地使用 SAP 系统,提高工作效率和管理水平。更多SAP文章请点击更多SAP文章更新,大家一起学习进步!!!

我小时候很黑的博客 712

.Net 2.0 新功能:代码段(Code Snippets)

 代码段(Code Snippets)1.前言开发人员不喜欢打字。如果你希望提高开发人员的生产力,减少键入的数量,这也同时减少打字稿的数量以及因此产生的编译器错误,这些都极大分散了开发人员的注意力。代码重用是开发人员收集代码的另一个原因。即使单个应用程序也会大量地由小而公共的代码段组成,在几乎每个程序中都会有相同的代码元素:循环、类、异常处理等等。开发人员传统上是对代码进行剪切和粘贴以

董浩的专栏 2867

基于截图详解:SAP GUI for Java 如何设置登录链接,以及 conn= 连接字符串该怎么写

摘要:SAP GUI for Java 的连接属性配置关键是在"高级"页签的"conn="后填写连接字符串。连接字符串格式取决于网络拓扑:直连应用服务器使用"/H/主机/S/端口";通过消息服务器负载均衡使用"/M/消息服务器/S/端口/G/组名";经SAProuter访问则需添加路由器前缀。配置时需注意专家模式会覆盖其他页签设置,且连接字符串还支持附加参数如客户端、语言和默认事务码。具体填写内容应根据Basis团队提供的系统信

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 250

uniapp图片上传(一次只能上传一)

uniapp图片上传

aaa3456789__的博客 1025

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

JS原生图片上传

原生写法图片上传

weixin_45471506的博客 301

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ant design 多张图片显示(点击编辑回显原有图片)

点击编辑(显示已有的图片)

ddf__的博客 939

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

JS读取本地图片并预览

【代码】JS读取本地图片并预览。

qq_43164363的博客 1604

el-uploda超过限制图片隐藏,并封装组件

【代码】el-uploda超过限制图片隐藏,并封装组件。

Chuzhaoyun的博客 243

上传图片转base64

【代码】上传图片转base64。

yuyu_2019的博客 280

vue-element上传图片转为base64

【代码】vue-element上传图片转为base64。

weixin_46392674的博客 1180

动态上传&发布动态(50以内)

动态上传&发布动态(50以内) 图片上传和跳转 mounted() { let that = this, src = [], list = []; // 初始化Web Uploader var uploader = WebUploader.create({ // 选完文件后,是否自动上传。 auto: true, // swf文件路径 swf: "/static/uploader/Uploader....

SaoRenWenKe的博客 448

uni,小程序实现多图上传,无卡顿

export function UpdataImg(file,callback) { var that = this var ImgArr = [] uni.showLoading({ title: '上传中...', }) for(var i in file){ UpImgResolve(file[i],i).then((res)=>{ ImgArr.push(res.img) // 当需要上传的文件上传完,返回上传成功的数组 i..

ftally的博客 211

拖拽批量上传的图片 vue2

<template> <div> <a-modal centered title="批量上传图片" v-model="dataVisible" :keyboard="false" class="img-modal" :mask-closable="maskClosable" ref="im

兔老大的胡萝卜 439

element 限制文件上传类型

【代码】element 限制文件上传类型。

qq_48354174的博客 273

vue2上传图片

【代码】vue上传图片。

MDCG99的博客 239

爬2.12.6的Antd上传图片坑

因为这个上传插件只能默认上传,而如果使用beforeUpload会导致图片一直上传加载而卡住的bug 所以必须使用默认上传,在提交表单之前,本地选取图片之后,能够默认上传到阿里云服务器(如果上传到后端,其实不如直接上传到阿里云服务器来的直接) 所以这里的爬坑对象就是Antd的2.12.8版本(3.x版本没有这个问题)和阿里云oss的 存储对象服务 安装环境 请参考Dva项目作为Antd的Demo 安装阿里云oss服务 官网链接 1、使用npm安装SDK开发包,安装命令为npm install ali-o

weixin_42357617的博客 1576
上一篇: 【CentOS6】CentOS6.8修改网卡的mac地址
下一篇: 【mirror】国内镜像站,没事翻一翻
jy0921_
博客等级 码龄11年 329粉丝 193原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值