package
client;
import
java.io.DataInputStream;
import
java.io.DataOutputStream;
import
java.io.File;
import
java.io.FileInputStream;
import
java.io.IOException;
import
java.io.OutputStream;
import
java.net.HttpURLConnection;
import
java.net.URL;
public
class
FileUpload {
/**
* 发送请求
*
* @param url
* 请求地址
* @param filePath
* 文件在服务器保存路径(这里是为了自己测试方便而写,可以将该参数去掉)
* @return
* @throws IOException
*/
public
int
send(String url, String filePath)
throws
IOException {
File file =
new
File(filePath);
if
(!file.exists() || !file.isFile()) {
return
-
1
;
}
/**
* 第一部分
*/
URL urlObj =
new
URL(url);
HttpURLConnection con = (HttpURLConnection) urlObj.openConnection();
/**
* 设置关键值
*/
con.setRequestMethod(
"POST"
);
// 以Post方式提交表单,默认get方式
con.setDoInput(
true
);
con.setDoOutput(
true
);
con.setUseCaches(
false
);
// post方式不能使用缓存
// 设置请求头信息
con.setRequestProperty(
"Connection"
,
"Keep-Alive"
);
con.setRequestProperty(
"Charset"
,
"UTF-8"
);
// 设置边界
String BOUNDARY =
"----------"
+ System.currentTimeMillis();
con.setRequestProperty(
"Content-Type"
,
"multipart/form-data; boundary="
+ BOUNDARY);
// 请求正文信息
// 第一部分:
StringBuilder sb =
new
StringBuilder();
sb.append(
"--"
);
// ////////必须多两道线
sb.append(BOUNDARY);
sb.append(
"\r\n"
);
sb.append(
"Content-Disposition: form-data;name=\"file\";filename=\""
+ file.getName() +
"\"\r\n"
);
sb.append(
"Content-Type:application/octet-stream\r\n\r\n"
);
byte
[] head = sb.toString().getBytes(
"utf-8"
);
// 获得输出流
OutputStream out =
new
DataOutputStream(con.getOutputStream());
out.write(head);
// 文件正文部分
DataInputStream in =
new
DataInputStream(
new
FileInputStream(file));
int
bytes =
0
;
byte
[] bufferOut =
new
byte
[
1024
];
while
((bytes = in.read(bufferOut)) != -
1
) {
out.write(bufferOut,
0
, bytes);
}
in.close();
// 结尾部分
byte
[] foot = (
"\r\n--"
+ BOUNDARY +
"--\r\n"
).getBytes(
"utf-8"
);
// 定义最后数据分隔线
out.write(foot);
out.flush();
out.close();
/**
* 读取服务器响应,必须读取,否则提交不成功
*/
return
con.getResponseCode();
/**
* 下面的方式读取也是可以的
*/
// try {
// // 定义BufferedReader输入流来读取URL的响应
// BufferedReader reader = new BufferedReader(new InputStreamReader(
// con.getInputStream()));
// String line = null;
// while ((line = reader.readLine()) != null) {
// System.out.println(line);
// }
// } catch (Exception e) {
// System.out.println("发送POST请求出现异常!" + e);
// e.printStackTrace();
// }
}
public
static
void
main(String[] args)
throws
IOException {
FileUpload up =
new
FileUpload();
System.out.println(up.send(
"http://localhost:8080/fileupload/upload"
,
"c:\\girls.gif"
));
;
}
}
|
相关推荐
java处理文件上传的底层实现以及java模拟post协议实现文件上传
使用java处理文件上传的底层实现流程以及java模拟post协议实现文件上传
Java 实现表单文件上传功能
java后台发起上传文件http post 请求
pentaho-kettle依赖拉取失败?试试这个Maven仓库配置的终极解决方案
本文详细解析了Pentaho Kettle依赖拉取失败的常见原因,并提供了三种Maven仓库配置方案,包括基础pom.xml配置、全局settings.xml设置以及企业级私有镜像仓库搭建。通过实战验证的方法和常见问题排查指南,帮助开发者彻底解决pentaho-kettle依赖问题,提升项目构建效率。
使用Java实现文件的上传
基于表单实现文件上传。
Aruba CX交换机VSX配置实战:如何避免脑裂导致的网络中断(含详细命令)
本文提供Aruba CX交换机VSX配置的实战指南,重点讲解如何通过构建高可靠的ISL链路聚合与独立隔离的Keepalive链路,有效避免网络脑裂风险。文章包含详细的命令步骤,从基础配置到高级故障排查,帮助网络工程师构建坚如磐石的高可用核心网络,确保业务流量零中断。
算法竞赛推荐书单
前言 入坑算法竞赛已经一年半了,在这期间也读了不少关于算法竞赛的书,这些书对我的帮助还是蛮大的。平时看题解多是个人零散的题解,很难以系统的去学习,认认真真的挑选1-2本书来阅读,无论是从思维能力还是文字表达能力都会得到提升,以下都是我自己读过的书进行一下分享,难度由浅入深,部分书籍浅尝而止。 入门:《啊哈!算法》 适合:总题量150以下初步掌握C语言的萌新 一本充满智慧和趣味的算法入门书。没有枯燥的描述,没有难懂的公式,一切以实际应用为出发点,通过幽默的语言配以可爱的插图来讲解算法。你更像是在阅读一个个轻松
Java模拟formdata发送请求-文件上传
public String upload() { //HttpHeaders httpHeaders = RestTemplateUtils.basicAuthenticationInfo(poAuthConfig.getUsername(), poAuthConfig.getPassword()); //上传的地址 String url = "请求接口地址"; String filePath = "文件路径地址"; Rest.
保姆级教程:在S32K312上配置C40驱动,实现Flash读写(基于RTD 4.4.2)
本文详细介绍了在S32K312微控制器上配置C40驱动实现Flash读写的全流程,基于RTD 4.4.2库。内容涵盖环境搭建、外设配置、Flash操作实战代码及高级应用场景,特别针对LLD驱动和FLS存储操作中的常见问题提供了解决方案,帮助开发者快速掌握嵌入式Flash存储技术。
java http请求 模拟表单上传文件 multipart/form-data 格式
package com.jl.net.exmsteel.service.impl; import com.alibaba.fastjson.JSONObject; import com.google.gson.JsonObject; import com.jl.net.exmsteel.service.DzjcConnectorService; import com.jl.net.framework.exception.BusinessException; import com.jl.net.framew
别再死记硬背窗函数公式了!用MATLAB实战汉宁窗FIR滤波器,从频谱图看懂‘主瓣’和‘旁瓣’
本文通过MATLAB实战演示汉宁窗FIR滤波器的设计过程,帮助读者从频谱图直观理解主瓣与旁瓣的特性。文章详细对比了矩形窗与汉宁窗的频谱差异,并提供了高通滤波器设计的完整代码示例,适用于数字信号处理学习和工程应用。
SYSU-MM01数据集评估避坑指南:从RGB/IR图像理解到Python评估脚本调优
本文详细解析了SYSU-MM01数据集在跨模态行人重识别(ReID)评估中的关键技巧与常见陷阱。从RGB/IR图像理解到Python评估脚本优化,提供了数据评估模式选择、single-shot/multi-shot差异分析、特征文件处理规范等实用指南,帮助研究者避开指标异常问题,提升评估效率与准确性。
java模拟表单上传文件_java客户端模拟表单上传文件
下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。package client;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOE...
【即插即用模块】Transformer篇 | TCSVT 2025 | DAFM:双注意力聚合+反向跨模态筛选,特征精准捕捉并融合!
本文提出了一种双模态注意力融合模块(DAFM),用于增强多模态图像融合任务中的特征交互。该模块通过双注意力聚合机制,结合自注意力与跨模态注意力,有效提升特征融合效果。DAFM采用可学习平衡因子动态调整注意力权重,并运用深度卷积降低计算复杂度。实验结果表明,该模块能显著提升多模态图像融合质量,适用于RGB-红外等双模态视觉任务。模块代码实现简洁,可直接集成到现有网络中作为特征融合层使用。
java表单文件,java客户端模拟表单上传文件
package client;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import java.net....
【Python机器学习】零基础掌握TweedieRegressor广义线性回归模型
本次文章主要介绍了如何使用Tweedie回归模型预测电动汽车的实际续航里程。基于车速、气温和驾驶习惯等多种因素,模型能够准确地预测出电动汽车的续航里程,从而为生产商和消费者提供有用的信息。优点总结,Tweedie回归模型在处理具有多元性和高度散布的数据方面表现出色,特别适用于需要考虑多种影响因素的预测任务。优点名称对应描述说明多元性强可以同时处理多种类型和维度的数据高度可定制允许用户自定义损失函数和正则项对异常值鲁棒能够较好地处理数据中的异常值易于解释参数和预测结果都相对容易解释。
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
java 模拟上传文件_java客户端模拟表单上传文件详解
package client;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import java.net....
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
用Java模拟表单(或iPhone、Android客户端)上传文件
开发一个iPhone客户端,客户端调用我写的接口上传图片。工程需要自己测试,网上Google,找到了一个可用的代码。 参考:http://bigcat.easymorse.com/?p=764 package com.test; import java.io.BufferedReader; import java.io.File; import java.io.IOException;
迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)
迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
winform图片上传到java服务器_C#winform客户端模拟表单post上传文件,java服务器端接收。...
[Java] 纯文本查看 复制代码/*** 上传图片* @param ip* @param filename* @return*/@RequestMapping(value="upload",method=RequestMethod.POST)@ResponseBodypublic String upload( @RequestParam("ip") String ip,@RequestParam...
java httpclient上传文件_Java使用HttpClient上传文件
上传所用httpclient版本为4.5.1客户端:/** * 模拟表单上传文件 * postFile 上传的文件 * postUrl 请求地址 * postParam 其他表单的请求参数 */ public static Map uploadFileByHTTP(File postFile,String postUrl,Map post...
java表单图片接口上传_采用multipart/form-data方式 调用上传图片接口
需求: 在手机客户端调用服务器端接口 把手机中的图片上传到 接口提供的服务器上。例如 新浪微博中的发表附带图片的微博。注:这里最好不要用socker编程来实现,因为当图片过大的时候,图片被解析成二进制(或者字节数组)通过socker流传过来的时候比较慢,当网络慢的时候往往会因为超时抛异常导致不能调用接口成功。其实可以在客户端模拟表单提交一样,把图片附件上传到接口提供的服务器上。新浪和腾讯的微博都是...
http上传图片
通过httpclient模拟提交表单,表单中包含
java后台发起上传文件的post请求(http和https)
一、http post 对于文件上传,客户端通常就是页面,在页面里实现上传文件不是什么难事,写个form,加上enctype="multipart/form-data",在写个接收的就可以了,没什么难的。如: <!DOCTYPEhtml> <html> <head> <title>HelloWorld!</titl...
使用httpclient模拟表单上传文件,后台用struts2接收
使用httpclient模拟表单上传文件,后台用struts2接收
[27期] curl模拟表单上传文件及一些设置(亲自实践)
curl模拟表单上传文件及一些设置准备两个文件,========curl.php与curl_post.php文件====------------------curl.php文件内容// 初始化$ch = curl_init();// 要上传的本地文件地址"@F:/xampp/php/php.ini"上传时候,上传路径前面要有@符号$furl = "@F:/xampp/php/ph
1228



被折叠的 条评论
为什么被折叠?



