I am Create a Program which is download file from server
public void downloadFile(String fileURL, String saveDir, String user, String pass, String FileName)
throws IOException {
String authString = user + ":" + pass;
byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
String authStringEnc = new String(authEncBytes);
URL url = new URL(fileURL);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
httpConn.setRequestProperty("Authorization", "Basic " + authStringEnc);
int responseCode = httpConn.getResponseCode();
// always check HTTP response code first
if (responseCode == HttpURLConnection.HTTP_OK) {
String fileName = "";
String disposition = httpConn.getHeaderField("Content-Disposition");
String contentType = httpConn.getContentType();
int contentLength = httpConn.getContentLength();
if (disposition != null) {
// extracts file name from header field
int index = disposition.indexOf("filename=");
if (index > 0) {
fileName = disposition.substring(index + 10,
disposition.length() - 1);
}
} else {
// extracts file name from URL
fileName = fileURL.substring(fileURL.lastIndexOf("/") + 1,
fileURL.length());
}
System.out.println("Content-Type = " + contentType);
System.out.println("Content-Disposition = " + disposition);
System.out.println("Content-Length = " + contentLength);
System.out.println("fileName = " + fileName);
// opens input stream from the HTTP connection
InputStream inputStream = httpConn.getInputStream();
String saveFilePath = saveDir + File.separator + fileName;
// opens an output stream to save into file
FileOutputStream outputStream = new FileOutputStream(saveFilePath);
int bytesRead = -1;
byte[] buffer = new byte[BUFFER_SIZE];
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.close();
inputStream.close();
System.out.println("File downloaded");
} else {
System.out.println("No file to download. Server replied HTTP code: " + responseCode);
}
httpConn.disconnect();
}
so when i am download file using parameters i faced a error the output is
Content-Type = application/http
Content-Disposition = null
Content-Length = 3217551
fileName = 13.25.00-13.26.00[R][0@0][0].dav
Exception in thread "main" java.io.FileNotFoundException: C:\Cam\13.25.00-13.26.00[R][0@0][0].dav
(The filename, directory name, or volume label syntax is incorrect)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:110)
at dynakode.utility.Downloader.downloadFile(Downloader.java:65)
at dynakode.camera.DynakodeCamera.cennection(DynakodeCamera.java:50)
at dynakode.camera.DynakodeCamera.main(DynakodeCamera.java:16)
Java Result: 1
as u can see Error is The filename, directory name, or volume label syntax is incorrect so how can i fix this
I am Change this line
String saveFilePath = saveDir + "\\" + "test.dav";
i am giving name manually than file is download to driver
the output is
Content-Type = application/http
Content-Disposition = null
Content-Length = 3217551
fileName = 13.25.00-13.26.00[R][0@0][0].dav
File downloaded
which is i want
issue Fixed
@TAsk you are write there is issue of Space but at C:/cam .. the is at file name which comes from server there is space " 13.25.00-13.26.00[R][0@0][0].dav"
which is create problem
so i am trim all path
saveFilePath = saveFilePath.trim();
using this an d issue fixed