Java 无法使用HttpURLConnection上载Excel文件
我成功地使用HttpURLConnection上传*.txt文件。现在我的任务是更改上传每种文件类型的程序。我用.xls文件尝试了我的程序。文件放在服务器上,但内容不可读 就像你在这里看到的: 什么 ¸¸ÃŒŒŒŒŒŒS 表1表2表3工作表4美元,3美元™0Å“8Å@Java 无法使用HttpURLConnection上载Excel文件,java,io,httpurlconnection,xls,Java,Io,Httpurlconnection,Xls,我成功地使用HttpURLConnection上传*.txt文件。现在我的任务是更改上传每种文件类型的程序。我用.xls文件尝试了我的程序。文件放在服务器上,但内容不可读 就像你在这里看到的: 什么 ¸¸ÃŒŒŒŒŒŒS 表1表2表3工作表4美元,3美元™0Å“8Å@xèèèèèèèèèèèèèèèèèèèèèèèèè232™微软公司微软Excel(微软公司) 下面是我的代码片段: HttpURLConnection urlConn = (HttpURLConnection) new U
xèèèèèèèèèèèèèèèèèèèèèèèèè232™微软公司微软Excel(微软公司)
下面是我的代码片段:
HttpURLConnection urlConn = (HttpURLConnection) new URL(testdocumentURL).openConnection();
urlConn.setRequestMethod("POST");
urlConn.setRequestProperty("X-Method-Override", "PUT");
urlConn.setRequestProperty("Content-Type", "text/xml");
urlConn.setRequestProperty("Authorization", "Basic "+ Client.getPassword());
urlConn.setUseCaches(false);
urlConn.setDoInput(true);
urlConn.setDoOutput(true);
urlConn.setFollowRedirects(false);
urlConn.setRequestProperty("Slug", "Connectiontest/test.xls");
String write = readFile(test.xls);
urlConn.setRequestProperty("Content-Length","" + write.length());
urlConn.getOutputStream().write(write.getBytes("UTF8"));
我认为有两种方法可以解决这个问题
在.write(write.getBytes(“UTF8”))中更改输出
更改输入
目前我阅读的文件如下:
readFile(String test){
BufferedReader reader = new BufferedReader(new FileReader(test));
String line = null;
StringBuilder stringBuilder = new StringBuilder();
String ls = System.getProperty("line.separator");
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
stringBuilder.append(ls);
}
reader.close();
return stringBuilder.toString();
}
我尝试通过以下方式更改RequestProperty():
connection.setRequestProperty("content-type", "multipart/form-data");
或
有人知道像这样上传一个.xls文件吗?我必须更喜欢HttpURLConnector,我的老板说:/
非常感谢!不要将Excel文件视为
字符串
。更改readFile
将文件读入字节[]
相反,然后将其写入连接输出流。将内容类型设置为application/vnd.ms-excel,然后尝试一下嗨,克里斯,我已经尝试了不同的内容类型。无效:(嗨,David Grant,这是一个有用的建议。现在我在我的readFile()中使用了一个FileInputStream)
我可以上传我想要的每种文件类型。谢谢巴德,救了我一天。这正是我的处境。
connection.setRequestProperty("content-type", "application/vnd.ms-excel");