Javaphp获取文件上传进度获取不到客户端文件

HttpClient使用HttpPost进行文件上传 - zhanghc - ITeye博客
博客分类:
import java.io.F
import java.io.IOE
import org.apache.http.HttpE
import org.apache.http.HttpR
import org.apache.http.HttpS
import org.apache.http.client.ClientProtocolE
import org.apache.http.client.HttpC
import org.apache.http.client.methods.HttpP
import org.apache.http.entity.mime.MultipartE
import org.apache.http.entity.mime.content.FileB
import org.apache.http.entity.mime.content.StringB
import org.apache.http.impl.client.DefaultHttpC
import org.apache.http.util.EntityU
public class HttpClientPostMethod {
public static void main(String[] args) throws ClientProtocolException, IOException {
public static void post() throws ClientProtocolException, IOException {
HttpClient httpclient = new DefaultHttpClient();
HttpPost post = new HttpPost("http://localhost:8080/action.jsp");
FileBody fileBody = new FileBody(new File("/home/sendpix0.jpg"));
StringBody stringBody = new StringBody("文件的描述");
MultipartEntity entity = new MultipartEntity();
entity.addPart("file", fileBody);
entity.addPart("desc", stringBody);
post.setEntity(entity);
HttpResponse response = httpclient.execute(post);
if(HttpStatus.SC_OK==response.getStatusLine().getStatusCode()){
HttpEntity entitys = response.getEntity();
if (entity != null) {
System.out.println(entity.getContentLength());
System.out.println(EntityUtils.toString(entitys));
httpclient.getConnectionManager().shutdown();
&%@ page language="java" contentType="text/ charset=UTF-8" pageEncoding="UTF-8"%&
&%@ page import="mons.fileupload.servlet.ServletFileUpload,
mons.fileupload.disk.DiskFileItemFactory,
java.io.*,
java.util.*,
mons.fileupload.FileItem,
org.opencms.extension.upload.*,
org.opencms.extension.upload.db.*,
org.opencms.jsp.*" %&
&!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&
&meta http-equiv="Content-Type" content="text/ charset=UTF-8"&
&title&upload.jsp&/title&
if (ServletFileUpload.isMultipartContent(request)) {
DiskFileItemFactory factory = new DiskFileItemFactory();
//设定内存可以存放文件的最大容量,单位字节,超过的部分会以临时文件的形式存放在硬盘上,这里设置成10兆
factory.setSizeThreshold();
File temp = new File("/temp");
if(!temp.exists()){
temp.mkdirs();
//设置临时文件存放的位置
factory.setRepository(temp);
ServletFileUpload upload = new ServletFileUpload(factory);
//设置单个文件最大容量限制,-1表示没有限制
upload.setFileSizeMax(-1);
//设置整个请求的上传容量限制,-1表示没有限制
upload.setSizeMax(-1);
List&FileItem& items = upload.parseRequest(request);
Iterator&FileItem& iterator = items.iterator();
FileItem upload_item =
String desc = "";
while (iterator.hasNext()) {
FileItem item = iterator.next();
if(item.isFormField()){
//普通字段
//out.print(item.getFieldName());//得到字段name属性的值
//out.print(item.getString("UTF-8"));//得到字段的值
desc = item.getString("UTF-8");
//文件字段
//out.print("--------------");
//out.print(item.getFieldName());
//out.println(item.getContentType());//文件类型《application/pdf》
//out.println(item.getName());//文件名称《入门.pdf》
upload_item =
浏览 41356
浏览: 125266 次
来自: 北京
大哥有没有ECB模式的?
是吖,他奶奶的。做.net的就是傻帽,不考虑兼容性的,用md5 ...
非常感谢!1.朋友的一个需求,让我给他实现,需求是这样的,需要用ASP.net写一个页面负责处理客户端上传的文件,并根据传递的参数把文件保存到相应的目录。客户端是手机应用程序,因为没学过Android,所以我只是写了一个Java的Demo用来上传文件。
public partial class _Default : System.Web.UI.Page
private string id = "";
private string userName = "";
private string type = "";
private string fileName = "";
//文件长度
private long contentLength = 0;
private static readonly string filePath = ConfigurationManager.AppSettings["filePath"];
protected void Page_Load(object sender, EventArgs e)
if (!IsPostBack)
id = Request["id"];
userName = Request["user"];
type = Request["type"];
fileName = Request.Headers["FileName"];
writeFile();
/// &summary&
/// 上传文件
/// &/summary&
private void writeFile()
Stream stream = Request.InputS
contentLength = stream.L
string currentFilePath = filePath + userN
if (!Directory.Exists(currentFilePath))
Directory.CreateDirectory(currentFilePath);
FileStream fileStream = File.Create(currentFilePath + @"\" + fileName);
//每次读取的1024个字节
byte[] bytes = new byte[1024];
int numReadByte = 0;
while ((numReadByte = stream.Read(bytes, 0, 1024)) != 0)
fileStream.Write(bytes, 0,numReadByte);
stream.Close();
fileStream.Close();
Java文件上传客户端示例,(几年没搞java有点生疏了):
import java.io.BufferedOutputS
import java.io.DataInputS
import java.io.F
import java.io.FileInputS
import java.net.HttpURLC
import java.net.URL;
* 只是写的一个示例,filePath,和FileName根据需要进行调整。
public class MyTest {
* @param args
public static void main(String[] args) {
// TODO Auto-generated method stub
String str="http://localhost:2906/Default.aspx?id=1&user=2&type=3";
String filePath="D:\\Wildlife.wmv";
String fileName="Wildlife.wmv";
URL url=new URL(str);
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.addRequestProperty("FileName", fileName);
connection.setRequestProperty("content-type", "text/html");
BufferedOutputStream
out=new BufferedOutputStream(connection.getOutputStream());
//读取文件上传到服务器
File file=new File(filePath);
FileInputStream fileInputStream=new FileInputStream(file);
byte[]bytes=new byte[1024];       int numReadByte=0;
while((numReadByte=fileInputStream.read(bytes,0,1024))&0)
out.write(bytes, 0, numReadByte);
out.flush();
fileInputStream.close();
//读取URLConnection的响应
DataInputStream in=new DataInputStream(connection.getInputStream());
} catch (Exception e) {
e.printStackTrace();
阅读(...) 评论()JAVA文件上传路径问题
如题,兄弟用一个servLet上传文件,我想把文件上传到项目跟目录下面的一个upload文件夹里面,请问,路径该如何填写?也就是说路径如何获取到当前项目所在文件夹,谢谢。
getServletContext().getRealPath(&/&)
我试过这个了,不行。
一楼可以的,有在用~ 呵呵
楼主是不是在Eclipse里面启动的项目?如果这样的话,通过上面的方法取到的路径应该会是在Eclipse的workspace里面的某个文件夹~~~
--- 共有 1 条评论 ---
楼主用的是NB
我都是自己拼
一般class里获得都是WEB-INF/classes目录下的,而且针对不同的web容器结果不一样
比如下面这段在tomcat和resin里就是不同的
System.out.println(&1&+Thread.currentThread().getContextClassLoader().getResource(&&));
System.out.println(&2&+BaseConfig.class.getResource(&&));
System.out.println(&3&+BaseConfig.class.getResource(&/&));
System.out.println(&4&+BaseConfig.class.getClassLoader().getResource(&&));
System.out.println(&5&+ClassLoader.getSystemResource(&&));
System.out.println(&6&+BaseConfig.class.getClassLoader().getResource(&com.xu81.config.BaseConfig&));
System.out.println(&7&+new File(&&).getAbsolutePath());
可以测试一下
现在可以了。
还是要事先规划好。
使用apache file-upload的包,路径自己指定,可以把上传到文件 放到服务器上任意路径下packagecom.gem.hsx.servl;importjava.io.F;importjava.io.FileOutput;importjavax.servlet.Serv;importjavax.servlet.http;mons;mons;importorg.
package com.gem.hsx.
import java.io.F import java.io.FileOutputS import java.io.IOE import java.io.InputS import java.io.PrintW import java.util.L import java.util.UUID;
import javax.servlet.ServletE import javax.servlet.http.HttpS import javax.servlet.http.HttpServletR import javax.servlet.http.HttpServletR
import mons.fileupload.FileI import mons.fileupload.FileItemF import mons.fileupload.disk.DiskFileItemF import mons.fileupload.servlet.ServletFileU
public class UploadServlet extends HttpServlet {
@SuppressWarnings(\ protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
BOUNDARY= UUID.randomUUID().toString();
request.setCharacterEncoding(\设置处理请求参数的编码格式
response.setContentType(\// 设置Content-Type字段值
PrintWriter out = response.getWriter();
out.println(\文件开始!\
// 下面的代码开始使用Commons-UploadFile组件处理上传的文件数据
FileItemFactory factory = new DiskFileItemFactory(); // 建立FileItemFactory对象
ServletFileUpload upload = new ServletFileUpload(factory);
// 分析请求,并得到上传文件的FileItem对象
List items = upload.parseRequest(request);
// 从web.xml文件中的参数中得到上传文件的路径
String uploadPath = \
File file = new File(uploadPath);
if (!file.exists()) {
file.mkdir(); } String filename = \上传文件保存到服务器的文件名 InputStream is = // 当前上传文件的InputStream对象 // 循环处理上传文件 for (FileItem item : items) {
// 处理普通的表单域
if (item.isFormField())
if (item.getFieldName().equals(\
// 如果新文件不为空,将其保存在filename中
if (!item.getString().equals(\
filename = item.getString(\
// 处理上传文件
else if (item.getName() != null && !item.getName().equals(\ {
// 从客户端发送过来的上传文件路径中截取文件名
filename = item.getName().substring(
item.getName().lastIndexOf(\
is = item.getInputStream(); // 得到上传文件的InputStream对象
} } // 将路径和上传文件名组合成完整的服务端路径 filename = uploadPath +BOUNDARY+ // 如果服务器已经存在和上传文件同名的文件,则输出提示信息 if (new File(filename).exists()) {
new File(filename).delete(); } // 开始上传文件 if (!filename.equals(\{
// 用FileOutputStream打开服务端的上传文件
FileOutputStream fos = new FileOutputStream(filename);
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) { }
package com.gem.hsx.
import java.io.F import java.util.ArrayL import java.util.HashM import java.util.L import java.util.M
import android.app.ListA import android.content.C import android.content.I import android.net.U import android.os.B import android.util.L import android.view.D import android.view.LayoutI import android.view.V import android.view.ViewG import android.view.WindowM import android.view.WindowManager.LayoutP import android.widget.BaseA import android.widget.ImageV import android.widget.ListV import android.widget.TextV
import com.gem.hsx.activity.R;
public class ExDialog extends ListActivity {
private List<Map> mD
private String mDir = \
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = this.getIntent();
Bundle bl = intent.getExtras();
String title = bl.getString(\
Uri uri = intent.getData();
mDir = uri.getPath();
setTitle(title);
mData = getData();
} MyAdapter adapter = new MyAdapter(this); setListAdapter(adapter); WindowManager m = getWindowManager(); Display d = m.getDefaultDisplay(); LayoutParams p = getWindow().getAttributes(); p.height = (int) (d.getHeight() * 0.8); p.width = (int) (d.getWidth() * 0.95); getWindow().setAttributes(p); private List<Map> getData() {
List<Map> list = new ArrayList<Map>();
File f = new File(mDir);
File[] files = f.listFiles();
} if (!mDir.equals(\ map = new HashMap();
map.put(\返回上一级目录/\ map.put(\ map.put(\ list.add(map); } if (files != null) {
for (int i = 0; i < files. i++) {
map = new HashMap();
if (files[i].isDirectory())
list.add(map);
@Override protected void onListItemClick(ListView l, View v, int position, long id) {
Log.d(\ if ((Integer) mData.get(position).get(\
mDir = (String) mData.get(position).get(\三亿文库包含各类专业文献、行业资料、各类资格考试、文学作品欣赏、高等教育、外语学习资料、专业论文、java文件上传,客户端和服务器端35等内容。 
 JAVA在服务器端和客户端传输图片和文件._互联网_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 JAVA在服务器端和客户端传输图片和文件._互联网_IT/...  | 下载客户端 | 百度首页 | 登录注册新闻 网页 贴吧...JavaWeb――文件上传和下载_计算机软件及应用_IT/...服务器端的, 如果直 接使用 Servlet 获取上传文件...  基于Java socket 文件上传服务的实现 一、服务器端 服务器端设置 ServerSocket,随时监听来自客户端的 Socket 连接请求,在建立连接之后 接受来自客户端的文件数据。 ...  | 下载客户端 | 百度首页 | 登录注册新闻 网页 贴吧...JavaWeb学习总结――文件上传和下载_学习总结_总结/...服务器端的, 如果直接使 用 Servlet 获取上传文件...  黑马程序员Java教程:TCP协议上传图片客户端和服务端_计算机软件及应用_IT/计算机...29. //将读取到的数据存储到一个文件中。 File dir = new File(&c:\\...  java中文件上传与下载_计算机软件及应用_IT/计算机_专业资料。java 中文件上传与下载 1。上传文件流程 先通过用户提交文件,保存文件到服务器端,然后在写入数据库中...  java实现图片或文件的上传功能具体思路及代码_计算机软件及应用_IT/计算机_专业...JAVA在服务器端和客户端... 7页 免费
Java多方式实现文件上传 29页 2下载...  文件上传之服务端 Android 开发中,我们常常需要上传文件到服务器,例如上传图片到...Jsp 页面代码如例 1-2: 例 1-2 &%@pagelanguage=&java&contentType=&text...

我要回帖

更多关于 js获取文件上传路径 的文章

 

随机推荐