gpt4 book ai didi

linux - 在 Java 5 中设置文件权限

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:07:43 25 4
gpt4 key购买 nike

我正在使用以下代码上传图片。问题是上传图片后我无法更改文件权限。我的文件权限默认设置为 rw-r--r-- (0644)。是否可以更改文件权限或将其默认设置为 0777?它在我的本地系统中运行良好。但无法更改我的 Linux 服务器中的权限。

    <%
try

{

int filesize=0;
String fieldname="",fieldvalue="",filename="",content="",bookid="",bkdescription="";

try {
List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : items) {
if (item.isFormField()) {
fieldname = item.getFieldName();
fieldvalue = item.getString();
if(fieldname.equals("homeid")){
bookid=fieldvalue;
}

if(fieldname.equals("bkdescription")){
bkdescription=fieldvalue;
}

} else {
try{
fieldname = item.getFieldName();
filename = FilenameUtils.getName(item.getName());
InputStream filecontent = item.getInputStream();
filesize=(int)item.getSize();
filename="literal_"+bookid+".jpg";
if(filesize>0){
byte[] b=new byte[filesize];
int c=0;

File f=new File(getServletConfig().getServletContext().getRealPath("/")+"/imagesX");
String filePah=getServletConfig().getServletContext().getRealPath("/")+"/imagesX";

if(f.isDirectory())
{
String fl[]=f.list();
for(int i=0;i<fl.length;i++)

{

File fd=new File(getServletConfig().getServletContext().getRealPath("/")+"/imagesX/"+fl[i]);
if(fd.getName().equals(filename))
fd.delete();

}

}

if(!f.exists())
{
new File(filePah).mkdir();
f.mkdir()
}

java.io.FileOutputStream fout=new java.io.FileOutputStream(getServletConfig().getServletContext().getRealPath("/")+"/imagesX/"+filename);

while((c = filecontent.read(b)) != -1 )
{
fout.write(b, 0, c);

}

fout.close();
filecontent.close();
}

}catch (Exception e) {
System.out.println("Exception in creation of file :"+e);

}

}

}

} catch (FileUploadException e) {
throw new ServletException("Cannot parse multipart request.", e);
}

}

catch(Exception exp)

{
out.println(exp);
}

%>

最佳答案

您不能从 Java 代码中更改文件权限。

您系统的默认 umask 设置为 0644 用于新文件。更改默认的 umask 不是个好主意。

您需要做的是将目录的权限设置为0777,然后将目录的ACL 重新定义为递归,这样所有在其中创建的新文件都将继承相同的权限。

这是一个显示如何进行的链接 - https://superuser.com/questions/151911/how-to-make-new-file-permission-inherit-from-the-parent-directory

关于linux - 在 Java 5 中设置文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11095728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com