Commit fb3a006f by 丁伟

1、解决上传到服务器的图片和文件无法直接读取的问题。

parent f4bc09a7
package org.ccpit.ueditor.upload;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.FileUploadException;
......@@ -19,6 +11,15 @@ import org.ccpit.ueditor.define.BaseState;
import org.ccpit.ueditor.define.FileType;
import org.ccpit.ueditor.define.State;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.PosixFilePermission;
import java.util.*;
public class BinaryUploader {
public static final State save(HttpServletRequest request,
......@@ -73,8 +74,14 @@ public class BinaryUploader {
String physicalPath = serverSavePathPrefix + savePath;
InputStream is = fileStream.openStream();
State storageState = StorageManager.saveFileByInputStream(is,
physicalPath, maxSize);
State storageState = StorageManager.saveFileByInputStream(is, physicalPath, maxSize);
Set<PosixFilePermission> permissions = new HashSet<>();
permissions.add(PosixFilePermission.OWNER_READ);
permissions.add(PosixFilePermission.OWNER_WRITE);
permissions.add(PosixFilePermission.GROUP_READ);
permissions.add(PosixFilePermission.OTHERS_READ);
Files.setPosixFilePermissions(Paths.get(physicalPath), permissions);
is.close();
if (storageState.isSuccess()) {
......
......@@ -8,6 +8,11 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.attribute.PosixFilePermission;
import java.util.HashSet;
import java.util.Set;
import org.apache.commons.io.FileUtils;
import org.ccpit.ueditor.define.AppInfo;
......@@ -124,6 +129,16 @@ public class StorageManager {
State state = null;
File targetFile = new File(path);
Set<PosixFilePermission> permissions = new HashSet<>();
permissions.add(PosixFilePermission.OWNER_READ);
permissions.add(PosixFilePermission.OWNER_WRITE);
permissions.add(PosixFilePermission.GROUP_READ);
permissions.add(PosixFilePermission.OTHERS_READ);
try {
Files.setPosixFilePermissions(Paths.get(path), permissions);
} catch (IOException e) {
e.printStackTrace();
}
if (targetFile.canWrite()) {
return new BaseState(false, AppInfo.PERMISSION_DENIED);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment