java web service 上传一定要把文件转成字节上传吗
补充:能不能 直接上传FILE文件 ,还是一定转成byte[]上传 web service中 我用的xfire 做的,
上传byte[] 是可以的,但是 上传file 就报异常
追问:你有没有 web service 上传例子是的 我也是用个byte【】上传的我用 byte【】做好了 我就想知道 file为什么不能传
答案:你的问题问的有些怪。所有的计算机数据不都是字节形式的吗?
我想,你想问的是:是否必须进行转义吧?
答案是否定的,是否需要某种格式的处理,需要看服务器端的协议约定。
===================
那是肯定的,传输数据时必然要使用BYTE[]。
其他:保存到本地一个文件 后缀与下载地址的后缀相同·· 上传的话 将某个文件流 转成字节流 上传到某个webservice方法里 -要代码来代码 URL url=new URL( 貌似我以前上传文件时必须得转成byte[]上传 不能上传file,要转成byte[],这样不难呀.
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//要下载的文件在服务器上保存的名字
String savename = java.net.URLDecoder.decode(request.getParameter("saveName"), "UTF-8");
String webUrl=request.getSession().getServletContext().getRealPath("/"); // 获取当前程序的路径
String fullPath = webUrl+"uploadDir"+ File.separator + savename; // 拼写成完整的路径
byte[] content = null;
File readFile = new File(fullPath);
if(readFile.exists()){
FileInputStream fi = new FileInputStream(fullPath);
BufferedInputStream in = new BufferedInputStream(fi);
ByteArrayOutputStream out = new ByteArrayOutputStream(1024*1024);
byte[] temp = new byte[1024*1024];
int size = 0;
while ((size = in.read(temp)) != -1) {
out.write(temp, 0, size);
}
in.close();
content = out.toByteArray();
}
//设置编码
response.setCharacterEncoding("utf-8");
response.setContentType("text/plain");
//设置文件名
response.setHeader("Content-disposition", "attachment;filename="+
java.net.URLEncoder.encode(savename.substring(14),"utf-8"));
// System.out.println(savename);
OutputStream out = response.getOutputStream();
out.write(content);
out.flush();
out.close();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
上一个:java me适合所有手机编程吗?
下一个:Java:eclipse 输入函数Ppl