- 浏览: 915350 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
天天来注册:
...
try catch finally 用法 -
tadpole_java:
谢谢你的分享。
二十七、Qt数据库(七)QSqlRelationalTableModel(转) -
359449749tan:
android之EditText文本监听(addTextChangedListener) -
michael_wang:
人过留名 多谢分享
Android NOtification 使用 -
wilsonchen:
wangqi0614 写道这个删除是删除所有的把?能不能值删除 ...
Android的SharedPreferences保存与删除数据简单实例
客户端:(android)
private void uploadFile()
{
String uploadUrl = "http://IP:8081/dbcampus/UploadFileServlet";
String end = "\r\n";
String twoHyphens = "--";
String boundary = "******";
try
{
URL url = new URL(uploadUrl);
HttpURLConnection httpURLConnection = (HttpURLConnection) url
.openConnection();
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
httpURLConnection.setUseCaches(false);
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setRequestProperty("Connection", "Keep-Alive");
httpURLConnection.setRequestProperty("Charset", "UTF-8");
httpURLConnection.setRequestProperty("Content-Type",
"multipart/form-data;boundary=" + boundary);
DataOutputStream dos = new DataOutputStream(httpURLConnection
.getOutputStream());
dos.writeBytes(twoHyphens + boundary + end);
dos
.writeBytes("Content-Disposition: form-data; name=\"file\"; filename=\""
+ srcPath.substring(srcPath.lastIndexOf("/") + 1)
+ "\"" + end);
dos.writeBytes(end);
FileInputStream fis = new FileInputStream(srcPath);
byte[] buffer = new byte[8192]; // 8k
int count = 0;
while ((count = fis.read(buffer)) != -1)
{
dos.write(buffer, 0, count);
}
fis.close();
dos.writeBytes(end);
dos.writeBytes(twoHyphens + boundary + twoHyphens + end);
dos.flush();
InputStream is = httpURLConnection.getInputStream();
InputStreamReader isr = new InputStreamReader(is, "utf-8");
BufferedReader br = new BufferedReader(isr);
String result = br.readLine();
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
dos.close();
is.close();
} catch (Exception e)
{
e.printStackTrace();
setTitle(e.getMessage());
}
}
服务器端:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try
{
request.setCharacterEncoding("UTF-8"); // 设置处理请求参数的编码格式
response.setContentType("text/html;charset=UTF-8"); // 设置Content-Type字段值
PrintWriter out = response.getWriter();
// 下面的代码开始使用Commons-UploadFile组件处理上传的文件数据
FileItemFactory factory = new DiskFileItemFactory(); // 建立FileItemFactory对象
ServletFileUpload upload = new ServletFileUpload(factory);
// 分析请求,并得到上传文件的FileItem对象
List<FileItem> items = upload.parseRequest(request);
// 从web.xml文件中的参数中得到上传文件的路径
String uploadPath = request.getSession().getServletContext().getRealPath("/");
System.out.println("uploadPath"+uploadPath);
File file = new File(uploadPath+"img");
if (!file.exists())
{
file.mkdir();
}
String filename = ""; // 上传文件保存到服务器的文件名
InputStream is = null; // 当前上传文件的InputStream对象
int lengthe=0;
// 循环处理上传文件
for (FileItem item : items)
{
// 处理普通的表单域
if (item.isFormField())
{
if (item.getFieldName().equals("filename"))
{
// 如果新文件不为空,将其保存在filename中
if (!item.getString().equals(""))
filename = item.getString("UTF-8");
System.out.println("filename1"+filename);
}
}
// 处理上传文件
else if (item.getName() != null && !item.getName().equals(""))
{
// 从客户端发送过来的上传文件路径中截取文件名
filename = item.getName().substring(
item.getName().lastIndexOf("\\") + 1);
System.out.println("filename2"+filename);
is = item.getInputStream(); // 得到上传文件的InputStream对象
lengthe=is.available();//获得要上传文件的所附带流的大小
System.out.println("lengthe:"+lengthe);
}
}
// 将路径和上传文件名组合成完整的服务端路径
String filename1 = uploadPath +"img"+ filename;
// 如果服务器已经存在和上传文件同名的文件,则输出提示信息
if (new File(filename1).exists())
{
new File(filename1).delete();
}
// 开始上传文件(采用字节流上传)(代码是可用的)
if (!filename1.equals(""))
{
File file1=new File(uploadPath+"img",filename);
// 用FileOutputStream打开服务端的上传文件
FileOutputStream fos = new FileOutputStream(file1);
byte[] buffer = new byte[8192]; // 每次读8K字节
int count = 0;
// 开始读取上传文件的字节,并将其输出到服务端的上传文件输出流中
while ((count = is.read(buffer)) > 0)
{
fos.write(buffer, 0, count); // 向服务端文件写入字节流
}
fos.close(); // 关闭FileOutputStream对象
is.close(); // InputStream对象
out.println("文件上传成功!");
}
}
catch (Exception e)
{
}
}
发表评论
-
Tomcat 下配置https
2014-05-13 17:56 641引用 今天按照网上的教程做了一下在Tomcat下配置https ... -
HDFS详解
2011-12-06 10:31 2194http://www.cnblogs.com/chinacl ... -
git 远程管理
2011-12-05 23:20 1369Pro Git professional version c ... -
KV存储
2011-12-05 23:07 3596KV-存储 之 Hash算法 http://www.ces ... -
互联网常见Open API文档资源
2011-11-16 15:15 1069所谓的开放API(OpenAPI)是服务型网站常见的一种应用, ... -
Jdk1.6+Tomcat6+Apache2+jk_mod1.2+PHP5+MySql5安装与配置详解
2011-11-06 20:38 985http://jiarry.bokee.com/2375369 ... -
下载mod_jk.so地址
2011-11-06 18:34 1883apache版本与mod_jk.so版本要一致,要是不一致就 ... -
php环境安装视频教程
2011-11-05 18:03 909http://dv.ce.cn/video/2010/12/3 ... -
PHP环境配置:Apach+Tomcat+mysql+php
2011-11-05 15:22 67571》下载需要的软件: Apache : apa ... -
Apache的使用方法
2011-11-05 15:18 23546http://www.heibai.net/book/html ... -
轻松搭建一个Windows SVN服务器
2011-11-04 21:58 806http://www.williamlong.info/arc ... -
SDO的使用
2011-11-04 15:26 1022http://www.ibm.com/developerwor ... -
Tomcat安全域设置大全
2011-10-26 10:13 1176安全域是tomcat内置的功能,在org.apache.cat ... -
Tomcat-阀
2011-10-26 10:03 783Tomcat的阀能够对容器接收到的HTTP请求进行预处理.阀可 ... -
loadRunner的使用教程视频
2011-08-24 16:37 938http://v.youku.com/v_playlist/f ... -
IIS日志的配置
2011-08-22 18:37 1027http://www.docin.com/p-13596823 ... -
webalizer流量分析软件windows下的配置与使用
2011-08-22 11:52 7322http://www.cnblogs.com/sdytzz/a ... -
JBPM的一点资料
2011-08-06 00:09 1040开源世界的版本问题,永远是入门者的噩梦,简单记录一些资料。 目 ... -
java获取系统时间
2011-08-04 15:24 7491. new java.util.Date() 2. ... -
安装Tomcat
2011-08-04 12:34 908MyEclipse下安装Tomcat http://blog. ...
相关推荐
服务器端通过监听特定的端口,等待客户端的连接请求,一旦连接建立,双方就可以通过发送和接收数据来实现文件的查询、上传和下载。 FTP是互联网上广泛使用的文件传输协议,它定义了两个进程之间如何交换文件。在这...
标题“delphi客户端文件上传代码和服务器端php接收代码”指出,我们将探讨如何使用Delphi编写客户端程序来实现文件上传,并通过PHP在服务器端接收和处理这些文件。这个过程通常包括以下几个步骤: 1. **Delphi...
在这个主题中,我们主要讨论的是一个FTP服务器端和一个简易的FTP客户端的实现。虽然代码可能存在一些问题,但它们仍然可以用于基本的连接测试,帮助开发者理解FTP的工作原理以及如何构建自己的FTP应用。 FTP服务器...
OAuth认证涉及两个主要角色:服务器端(也称为资源服务器)和客户端。 **OAuth认证服务器端**: OAuth服务器端是拥有用户资源的服务提供者,如社交网络或邮件服务。当用户想要授权第三方应用访问其在服务器端的资源...
SVN(Subversion)是一种版本控制系统,用于管理软件项目中的源代码和其他文件的变更历史。在软件开发过程中,SVN可以帮助团队协同工作,跟踪每次修改,回滚错误的改动,以及保持代码库的一致性。在这个“SVN服务器...
FTP服务器端部分是系统的核心,它负责接收来自客户端的连接请求,管理用户账户、权限和会话,并处理文件上传和下载的请求。源码中可能包含了以下关键组件: 1. **服务器监听模块**:该模块负责监听特定端口(通常为...
在你提供的压缩包文件中,包含的是P2P传输的源代码,具体实现了服务器端和客户端的功能,语言为C++。C++是一种强大的、通用的编程语言,特别适合系统编程和高性能计算,因此它是实现P2P系统的一个常见选择。 1. **...
FTP服务器和FTP客户端两个子文件夹可能分别包含了对应的源代码和可执行文件,通过查看源代码,开发者可以更深入地学习FTP协议的实现细节和VC编程技巧。 总的来说,这个VC开发的FTP服务器端和客户端程序是一个很好的...
在"qt 客户端和服务器端源代码"这个主题中,我们将深入探讨如何使用QT来构建客户端和服务器应用,实现文件的传输。 首先,让我们了解QT中的网络编程基础。QT提供了一个强大的网络模块(QNetworkAccessManager),...
从标签"服务器端"和"客户端"来看,这个源代码包含两部分:一部分是服务器程序,负责协调和管理网络中的交互;另一部分是客户端程序,用户可以直接与之交互,进行数据的发送和接收。服务器端通常会处理连接请求、维持...
在这个"FTP客户端服务器端全部代码"中,我们可以预见到包含实现FTP客户端和服务器功能的源代码。THFTPAPI.c 和 THFTPAPI.h 是两个关键文件,分别代表了实现FTP功能的C语言源代码和头文件。 THFTPAPI.c 可能包含了...
客户端代码,通过Tcp协议来进行通信,内容仅做参考,接受指正
在本教程中,我们将深入探讨如何设置和使用SVN服务器端以及客户端进行连接、上传和下载操作。 **一、安装与配置SVN服务器端** 1. **选择SVN服务器软件**:常见的SVN服务器软件有VisualSVN Server(Windows)、...
1. **错误处理**:客户端和服务器端都需要处理可能出现的异常,如网络问题、文件不存在、服务器空间不足等。 2. **安全性**:确保文件上传过程的安全性,防止文件注入攻击,对上传文件进行检查,限制文件类型和大小...
在iOS平台上开发移动社交应用程序,通常涉及到多个技术层面,包括客户端和服务器端的协同工作。本资源提供的"ios移动社交app的客户端+webservice服务器端源码"正是一个完整的解决方案,涵盖了用户交互、数据交换...
本资料为7z压缩包打包上传,包含TCP服务器端和客户端,并且客户端可对接收到的数据以文本方式保存。LabVIEW使用TCP通讯示例程序可设置端口号,LabVIEW可通过TCP发送波形,数值,布尔,文本等类型的数据,并且有相应...
SVN服务器端是系统的核心,负责存储和管理版本库,而客户端则是用户与这些版本库交互的工具。 在提供的文件列表中,我们可以看到以下几个关键组件: 1. **TortoiseSVN**: 这是一款非常流行的Windows平台上的SVN...
在客户端向服务器端上传文件的过程中,涉及到的主要技术包括前端交互、后端处理和文件传输协议。下面将分别从这三个方面详细讲解相关知识点。 首先,前端交互是用户与应用程序的接触点,这里通常会使用HTML、CSS和...
本压缩包“FTP.zip”提供了C#实现FTP功能的基础示例,包括服务器端和客户端的代码,帮助开发者理解和构建自己的FTP应用。 FTP服务器端: FTP服务器端通常由一个程序组成,该程序监听特定端口(默认为21)上的连接...
FTP服务器端的源代码通常涉及以下关键组件和概念: 1. **监听和连接**:服务器通过指定端口(默认是21)监听客户端的连接请求。源代码中会包含设置监听器和处理连接请求的代码。 2. **命令处理**:FTP协议基于命令...