文件上传:图片实例

weex开发实战(8)--在weex页面实现图片上传 不同于移动端原生开发,当开发者使用weex移动开发时,使用第三方SDK比较棘手。因为第三方的JS SDK是无法直接拿来使用的,环境不同。必须使用原生SDK,下面我介绍一下自己是如何在weex开发时(安卓)使用leancloud的服务的。 首先去leancloud的安卓SDK下载页面,下载SDK,这里我只使用了最基础的SDK包 其实用Gradle也可以啊,我喜欢下载手动集成。 然后 阅读详情

实例:http://www.runoob.com/jsp/jsp-file-uploading.html

1.jsp

前端发送文件到后台,可以使用Form表单提交或者设置<input file onchang="checkImg(this.value)"/>,前者可以使用<button submit>,也可以使用<button οnclick="fun();">,fun()中使用$.AjaxSubmit({...});。

<form method="post" action="/TomcatTest/UploadServlet" enctype="multipart/form-data">
    选择一个文件:
    <input type="file" name="uploadFile" />
    <br/><br/>
    <input type="submit" value="上传" />
</form>method="post" action="/TomcatTest/UploadServlet" enctype="multipart/form-data">
    选择一个文件:
    <input type="file" name="uploadFile" />
    <br/><br/>
    <input type="submit" value="上传" />
</form>

 

2.后台

 后台接收文件,使用InputStream和OutputStream将文件存储到相应位置。

1.接收

使用参数接收文件@RequestParam(value=“file”,required=“false”)MultipartFile file

2.设置路径和文件名

3.保存文件

项目路径获取,保存路径设置;判断路径是否存在,不存在则创建;

文件名获取,保存文件名设置;

InputStream和OutputStream建立,将文件输出保存到指定位置。

// 获得原始文件名  
        String fileName = file.getOriginalFilename();  
        System.out.println("原始文件名:" + fileName);  
        // 新文件名  
        String newFileName = UUID.randomUUID() + fileName;  //可自定
  
        // 获得项目的路径  
        ServletContext sc = request.getSession().getServletContext();  
        // 上传位置  
        String path = sc.getRealPath("/img") + "/"; // 设定文件保存的目录  
  
        File f = new File(path);  
        if (!f.exists())  
            f.mkdirs();  
        if (!file.isEmpty()) {  
            try {  
                FileOutputStream fos = new FileOutputStream(path + newFileName);  
                InputStream in = file.getInputStream();  
                int b = 0;  
                while ((b = in.read()) != -1) {  
                    fos.write(b);  
                }  
                fos.close();  
                in.close();  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
  
        System.out.println("上传图片到:" + path + newFileName);  
        // 保存文件地址,用于JSP页面回显  
        model.addAttribute("fileUrl", path + newFileName);  file.getOriginalFilename();  
        System.out.println("原始文件名:" + fileName);  
        // 新文件名  
        String newFileName = UUID.randomUUID() + fileName;  //可自定
  
        // 获得项目的路径  
        ServletContext sc = request.getSession().getServletContext();  
        // 上传位置  
        String path = sc.getRealPath("/img") + "/"; // 设定文件保存的目录  
  
        File f = new File(path);  
        if (!f.exists())  
            f.mkdirs();  
        if (!file.isEmpty()) {  
            try {  
                FileOutputStream fos = new FileOutputStream(path + newFileName);  
                InputStream in = file.getInputStream();  
                int b = 0;  
                while ((b = in.read()) != -1) {  
                    fos.write(b);  
                }  
                fos.close();  
                in.close();  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
  
        System.out.println("上传图片到:" + path + newFileName);  
        // 保存文件地址,用于JSP页面回显  
        model.addAttribute("fileUrl", path + newFileName); 

 

3.待测

http://blog.youkuaiyun.com/qian_ch/article/details/69258465 :文件流上传,对象上传,文件下载
http://blog.youkuaiyun.com/evankaka/article/details/45826697/ :文件上传,下载
https://www.cnblogs.com/fjsnail/p/3491033.html :三种文件上传方式:Stream、Transto、Spring提供方法
1.
@RequestMapping("/onefile2")  
public String oneFileUpload2(HttpServletRequest request,  
        HttpServletResponse response) throws Exception {  
    CommonsMultipartResolver cmr = new CommonsMultipartResolver(request.getServletContext());  
    if (cmr.isMultipart(request)) {  
        MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) (request);  
        Iterator<String> files = mRequest.getFileNames();  
        while (files.hasNext()) {  
            MultipartFile mFile = mRequest.getFile(files.next());  
            if (mFile != null) {  
                String fileName = UUID.randomUUID()  
                        + mFile.getOriginalFilename();  
                String path = "d:/upload/" + fileName;  
  
                File localFile = new File(path);  
                mFile.transferTo(localFile);  
                request.setAttribute("fileUrl", path);  
            }  
        }  
    }  
    return "fileUpload";  
}  CommonsMultipartResolver cmr = new CommonsMultipartResolver(request.getServletContext());  
    if (cmr.isMultipart(request)) {  
        MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) (request);  
        Iterator<String> files = mRequest.getFileNames();  
        while (files.hasNext()) {  
            MultipartFile mFile = mRequest.getFile(files.next());  
            if (mFile != null) {  
                String fileName = UUID.randomUUID()  
                        + mFile.getOriginalFilename();  
                String path = "d:/upload/" + fileName;  
  
                File localFile = new File(path);  
                mFile.transferTo(localFile);  
                request.setAttribute("fileUrl", path);  
            }  
        }  
    }  
    return "fileUpload";  
} 

2.

//上传文件会自动绑定到MultipartFile中
     @RequestMapping(value="/upload",method=RequestMethod.POST)
     public String upload(HttpServletRequest request,
            @RequestParam("description") String description,
            @RequestParam("file") MultipartFile file) throws Exception {

        System.out.println(description);
        //如果文件不为空,写入上传路径
        if(!file.isEmpty()) {
            //上传文件路径
            String path = request.getServletContext().getRealPath("/images/");
            //上传文件名
            String filename = file.getOriginalFilename();
            File filepath = new File(path,filename);
            //判断路径是否存在,如果不存在就创建一个
            if (!filepath.getParentFile().exists()) { 
                filepath.getParentFile().mkdirs();
            }
            //将上传文件保存到一个目标文件当中
            file.transferTo(new File(path + File.separator + filename));
            return "success";
        } else {
            return "error";
        }

     }file.transferTo(new File(path + File.separator + filename));
            return "success";
        } else {
            return "error";
        }

     }

 

 

 

 

 

 

 

 

 

 

 

 

Django:文件上传三要素,图片上传、存储与显示 图片属于位图文件,也是一种文件 文件上传 文件上传三要素: 1.提交方式 :必须是post 。 2.编码方式:enctype 必须是 multipart/form-data。 3.标签类型:必须是 file 类型。 html页面部分 如: 其中<img src=’’{%static image%}’’ alt=’’ ‘’> 用于显示图片 图片上传、存储与显示的视图模块 #上传文件:... 阅读详情

相关推荐

JSP图片与文件上传实例教程

在现代Web开发中,文件上传功能已成为不可或缺的一部分,广泛应用于用户头像设置、文档管理、图片分享等场景。JSP(Java Server Pages)作为Java Web开发的核心技术之一,提供了对HTTP请求的灵活处理能力,使得在服务器端接收和处理上传文件成为可能。HTTP协议中通过POST方法结合编码类型,实现了对二进制文件的安全传输。JSP文件上传的本质,是通过解析HTTP请求中的文件数据流,并将其保存至服务器指定路径。常见的上传实现方式包括使用组件和Java原生的Part接口。

weixin_34945060的博客 1047

weex学习之路(二)---组件封装(3)--图片上传

图片上传是一个很常用的功能,所以做了一个简单的封装,代码如下 <template> <image @click="uploadImage" :src="uploadFileTipImage" :style="uploadNativeStyle"></image> </template> <script> import GlobalApiConfig from "../ap

u014739462的博客 4466

weex module

封装weex Module模块开发,实现原生功能,并且提供原生效果

Weex Android加载本地图片及网络图片

Weex Android加载本地图片及网络图片前言本篇本地图片加载目前仅适用于ImageLoader,如若是其他图片框架,则需要自己写适配规则。当然如果要适配Fresco,则需去研究一下WXImage的源代码,相信大家都有收获的。一、网络图片的加载。在weex代码当中,我们需要将网络图片的地址赋值给src。 下面,我们重点来实现客户端的图片加载接口。目前Weex团队并没有提供已经实现好的接口供我们

mengzuixilou的专栏 1万+

简单图片上传例子

PHP file文件模式简单图片上传简单例子。form表单提交图片资源。

weex视频播放器

android端扩展视频组件,给weex端调用,封装过程中的问题和解决;通过声明周期解决的一个问题

JavaScript图片处理大揭秘!掌握文件流处理方法

💻作为一名前端开发,我们平时也少不了对文件流数据进行处理,今天简单整理一下日常开发中比较常见的一些处理文件流的场景及处理方法,希望可以帮助到大家,挤出多一点的~~摸鱼~~学习时间。

Twinkle_sone的博客 1849

图片上传案例

使用ajax、servlet技术实现图片上传功能。(测试可以使用)

图片上传和预览功能

本次分享的是在工作中遇到的图片上传和预览问题 因为使用的是weex框架进行开发(weex是一个比较老旧已经被废弃的框架),不支持一些比较好用的像el-ui这种目前比较流行,且功能比较丰富的ui库因此在解决时使用了原生的input(type = file)。 解决问题 weex自带的eeui库,并没有找到有关文件上传的模块。不得不使用原生js。虽然还是会有type警告,但是功能方面还是可以完成的。 <input type="file" id="bankCard" @change="saveImg" /

ZhangXiaoTianZC的博客 499

移动app的文件的weex的配置

wex的配置..................................................................

Ollama本地大模型部署指南:从核心原理到实战避坑

大语言模型(LLM)作为人工智能领域的核心技术,通过海量数据训练获得强大的语言理解和生成能力。其工作原理基于Transformer架构,通过自注意力机制处理序列数据,在文本生成、代码编写和对话系统等场景展现出巨大价值。随着开源模型的普及,本地部署成为关注焦点,它解决了数据隐私和定制化需求,但面临环境配置和资源管理的挑战。Ollama作为开源工具,通过封装模型格式和统一API,简化了本地部署流程,支持GPU加速和性能调优,让开发者能够快速集成到IDE和自动化脚本中,实现高效的本地AI应用部署。

weixin_30915951的博客 452

php 上传图片 回调,文件上传实例: 无刷新 & 重命名 & 回调

重命名 : 为防止文件名重复, 使用的规则是 年月日时分秒 + 随机数序 Ajax callback : use jquery.form.js html+js: htmlbody!--表单--form action="upload_file.php" method="post" enctype="multipart/form-data" id="xhdform"input type="file" ...

weixin_42126677的博客 198

【学习记录】IIC驱动ICM42670+卡尔曼滤波+四元数姿态角解算

ICM42670陀螺仪可以使用iic驱动,单片机平台使用GD32f305VE。

liarsup的博客 8269

SpringMVC实现文件上传

1.SpringMVC传统方式文件上传 SpringMVC框架提供了MultipartFile对象,该对象表示上传的文件,要求变量名称必须和表单file标签的name属性名称相同。 代码如下 /** * SpringMVC方式的文件上传 * * @param request * @return * @throws Exception */ @RequestMapping(value="/fileupload2") public String fileupload2(HttpServletReques

qq_42483491的博客 266

无人飞行器和车辆的协同配送物资问题——附带MATLAB代码

通过建立城市地图、生成物资点和配送任务、路径规划、协同调度以及仿真和评估等步骤,可以有效地解决物资配送的优化问题。通过建立城市地图、生成物资点和配送任务、路径规划、协同调度以及仿真和评估等步骤,可以有效地解决物资配送的优化问题。我们的目标是最小化物资配送的总时间,同时确保每个物资点都被正确配送的无人飞行器或车辆所访问。我们的目标是最小化物资配送的总时间,同时确保每个物资点都被正确配送的无人飞行器或车辆所访问。我们首先需要建立一个城市地图,包括物资点、无人飞行器的起始点和车辆的起始点。

CyberJolt的博客 950

前沿探索:基于强化学习的目标检测与跟踪技术及论文解析

前沿探索:基于强化学习的目标检测与跟踪技术及论文解析 ,人工智能,计算机视觉,大模型,AI,本文聚焦基于强化学习的目标检测与跟踪技术,先介绍相关技术基础,包括目标检测、跟踪及强化学习的算法等。接着阐述强化学习在目标检测与跟踪中的应用思路、框架及典型算法,解析三篇相关论文的背景、方法、实验结果。还探讨了该技术面临的样本效率、奖励函数设计等挑战,以及结合迁移学习等的未来发展方向,为该领域研究提供参考。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 11万+

struts文件上传

文件上传的三种方案 文件上传的三种方案: 一:上传到tomcat服务器; 自己的电脑:项目在哪,图片就在哪 云服务器:是没有CDEF盘,只有根目录 二:上传到指定文件目录,添加服务器映射关系; 文件服务器和Web服务器通常是同一个,但是文件目录与tomcat目录肯定不是同一个 三:在数据库表中建立二进制字段,将图片存储到数据库; 安全性高 实现文件上传 第一步:新建上传文件的页面 <%@ page la...

A2895922320的博客 186

【AI理论学习】手把手推导扩散模型:Diffusion Models(DDPM)

生成扩散模型DDPM如下图所示分为前向、逆向两个过程,它首先通过不断往原始清晰数据中添加噪声使其变成标准高斯噪声(前向过程),而后期望从标准高斯噪声中还原原始数据(逆向过程)。若能实现,那便可从已知的标准高斯分布中采样一个噪声数据,而后利用DDPM模型生成符合原始数据分布的新数据。 Diffusion模型包含两个过程:数学符号:y∝xy\propto xy∝x:y正比于x,即y随着x增大而线性增大。 条件概率:贝叶斯公式:p(A∣B)=p(B∣A)×p(A)p(B)p(A|B)=\frac{p(B|A)\

小哲的博客 1512

javaWeb图片上传回显

Javaweb图片上传及回显方式思路 方式一、先上传到服务器,            上传后返回上传文件路径和文件名,由jsp页面重新获得上传文件返回的路径进行DIV层的显示,使用jquery.uploadify            实现上传,示例如下网盘http://pan.baidu.com/disk/home#path=/10001-Myself   方式二、

w2222288的专栏 5749

手把手教你学Simulink--电动物流车预充电路控制及主继电器粘连检测电机负载仿真

摘要:本文基于Simulink仿真平台,研究了电动物流车预充电路控制策略及主继电器粘连检测技术。通过构建预充电路、主继电器检测及电机负载模型,分析了不同工况下的系统特性。研究表明,优化的预充控制策略可缩短预充时间至0.5秒内,降低电流峰值;主继电器粘连检测模型能准确识别故障;电机负载变化对系统性能具有显著影响。仿真结果验证了所提方法的有效性,为提升电动物流车安全性与可靠性提供了理论支持和技术参考。

MHD0815的博客 62

ASPICE学习笔记

ASPICE的全称是Automotive SPICE。

汽车电子软件领域知识分享 1355

使用jQuery开发一个基于HTML5的漂亮图片拖拽上传web应用

我们介绍了一款HTML5文件上传的jQuery插件:jQuery HTML5 uploader,今天我们将开发一个简单的叫upload center的图片上传程序,允许用户使用拖拽方式来上传电脑上的图片,使用现在浏览器支持新的HTML5 API。   图片将会有一个预览和进度条,都由客户端控制。目前,图片都保存在服务器上的一个目录里,当然你可以自己加强相关功能。  

772

微信小程序 - 超详细小程序接入腾讯地图的完整流程,提供地图显示、IP 属地定位、地理位置名称、获取经纬度等超多功能示例(可一键复制并运行的功能源代码,详细的注释及常见问题汇总)小白直接上手!

微信小程序腾讯地图怎么接入,小程序项目中使用腾讯地图sdk,小程序中使用腾讯地图,微信小程序集成腾讯地图功能,微信小程序通过ip获取其地址、经纬度、详细地址,小程序使用腾讯地图跨域解决方法,微信小程序引入腾讯地图详细教程,原生小程序引入腾讯地图,微信小程序如何植入腾讯地图,微信小程序腾讯地图配置及使用详细教程,小程序植入腾讯地图SDK,微信小程序项目怎么用腾讯地图,微信小程序IP属地定位,获取当前用户位置名称,微信小程序如何使用腾讯地图获取用户的定位位置,在小程序中使用腾讯地图,实现定位,距离计算,实时搜索

🏆 前端领域优质创作者 8808

【SpringBoot学习】5、SpringBoot 实现文件上传,图片上传并显示功能

我先看一下《颈椎病康复指南》再给大家说怎么实现的这两个功能,毕竟只是一个新手,解决这种复杂点的问题(相对而言),还是需要花费大量时间的,这篇文章花了两天的时间才实现的功能,现在就记录一下使用springboot怎么实现文件上传下载的。 我这里使用的是 springboot 2.0.3,不需要导入相关jar包,2.x 的版本已经整合进去了,直接使用即可。 spring官网提供了 springbo...

Tellsea 16万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

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

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

javaweb文件上传,图片地址上传到数据库,其他jsp页面通过查询数据库直接显示图片

javaweb文件上传,图片地址上传到数据库,其他jsp页面通过查询数据库直接显示图片

qq_51135343的博客 5295

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

上一篇: 前后端数据检查:必要
下一篇: 项目目录结构:web、Maven
ZSSZ_IT
博客等级 码龄9年 13粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值