📄 davuploadhandler.java
字号:
package com.sslexplorer.vfs.utils;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.upload.FormFile;
import com.sslexplorer.core.CoreServlet;
import com.sslexplorer.core.UploadHandler;
import com.sslexplorer.vfs.NetworkPlaceResourceType;
import com.sslexplorer.vfs.UploadDetails;
import com.sslexplorer.vfs.webdav.AbstractNetworkPlaceMount;
import com.sslexplorer.vfs.webdav.DAVResource;
import com.sslexplorer.vfs.webdav.DAVServlet;
public class DAVUploadHandler implements UploadHandler {
public ActionForward performUpload(HttpServletRequest request, HttpServletResponse response, UploadDetails upload,
FormFile uploadFile) throws Exception {
/*
* If an upload was attempted after session timeout, the login screen
* would have interrupted the upload. In this case just go straight back
* to the home page.
*/
if (upload.getResourcePath() == null || upload.getResourcePath().length() == 0) {
return upload.getUploadedForward();
}
if (uploadFile.getFileName() == null || uploadFile.getFileName().trim().equals("")) {
return upload.getUploadedForward();
}
DAVResource res = DAVServlet.getDAVResource(request, response, upload.getResourcePath() + "/" + uploadFile.getFileName());
try {
InputStream in = uploadFile.getInputStream();
OutputStream out = res.write();
try {
byte[] buf = new byte[4096];
int read;
while (true) {
read = in.read(buf, 0, buf.length);
if (read == -1) {
break;
}
out.write(buf, 0, read);
}
} finally {
in.close();
out.close();
}
return upload.getUploadedForward();
} catch (Exception e) {
/*
* Close the stream so the client gets an error straight away rather
* than having to wait for the file to upload
*/
try {
request.getInputStream().close();
} catch (IOException ioe) {
throw ioe;
}
throw e;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -