Java 将字符串写入文件,用户可从中选择<;输入类型=";文件"&燃气轮机;

Java 将字符串写入文件,用户可从中选择<;输入类型=";文件"&燃气轮机;,java,jsp,servlets,Java,Jsp,Servlets,我想将一个字符串写入一个文件,由用户选择。我无法执行此操作,因为我需要文件名和文件位置将字符串写入文件。但是request.getParamater(“”)只提供了文件名。我知道由于安全问题,它不会返回文件位置。然后,如何从jsp上选择的文件中写入字符串。请告知。您不能直接写入该文件 简短回答:在服务器上复制文件 长答覆: 1) 获取文件 2) 保存在服务器上 3) 附加到该文件。不要覆盖 4) 再次使用响应将文件发送回用户执行一些步骤 使用getFileName()方法获取文件名。将其存储在

我想将一个字符串写入一个文件,由用户选择。我无法执行此操作,因为我需要文件名和文件位置将字符串写入文件。但是request.getParamater(“”)只提供了文件名。我知道由于安全问题,它不会返回文件位置。然后,如何从jsp上选择的文件中写入字符串。请告知。

您不能直接写入该文件

简短回答:在服务器上复制文件

长答覆:

1) 获取文件

2) 保存在服务器上

3) 附加到该文件。不要覆盖

4) 再次使用
响应将文件发送回用户

执行一些步骤

  • 使用
    getFileName()
    方法获取文件名。将其存储在服务器端
  • 如果有人想再次保存相同的文件名,则在文件名后附加一些日期。因此,您可以轻松获取所有文件,而无需任何代码更改
  • String
    写入文件后,关闭文件并
    flush
  • 看,我已经上传了文件表单前端,并将其存储在一些本地系统上。当您再次尝试上载同一文件时,它会用文件名附加日期

    public class uploadFile {
    
    private File myFile;
    private String myFileContentType;
    private String myFileFileName;
    private String destPath;
    
     public String upload() throws IOException {
    try {
    
        destPath = System.getProperty("user.home") +    System.getProperty("file.separator") + "File-Uploads";
        File destFile = new File(destPath, myFileFileName);
        File file1 = new File(destFile.toString());
        boolean b = false;
        Date date = new Date();
        if (!(file1.exists())) {
            b = file1.createNewFile();
    
        }
        if (b) {
            FileUtils.copyFile(myFile, destFile);
        } else {
            String fileContent = "";
            File f = new File(file1.toString());
            FileInputStream inp = new FileInputStream(f);
            byte[] bf = new byte[(int) f.length()];
            inp.read(bf);
            fileContent = new String(bf, "UTF-8");
            System.out.println("file===>" + fileContent);
            String filename = destFile.toString() + date;
            FileWriter fw = new FileWriter(filename, true);
            fw.write(fileContent);
            fw.close();
            FileUtils.copyFile(myFile, destFile);
           }
    
        return SUCCESS;
    } catch (IOException e) {
        return SUCCESS;
    }
    }
    
       public File getMyFile() {
         return myFile;
       }
    
     public void setMyFile(File myFile) {
     this.myFile = myFile;
      }
    
      public String getMyFileContentType() {
      return myFileContentType;
     }
    
    public void setMyFileContentType(String myFileContentType) {
    this.myFileContentType = myFileContentType;
     }
    
     public String getMyFileFileName() {
     return myFileFileName;
     }
    
     public void setMyFileFileName(String myFileFileName) {
     this.myFileFileName = myFileFileName;
      }
      }
    

@Bond JavaBond无需在此处显示任何代码。事实上,这是一个设计问题:)@PiyushMittal动态位置?那是什么?你能详细解释一下吗?@Suresh我从哪里得到文件?请确定我们将在哪里创建文件?它是由用户或程序员给出的将选择的位置Dynamic location,表示他想选择文件应下载的位置,但出于安全原因,您不能这样做ᴜʀᴇsʜᴀᴛᴛᴀ 解释的意思是“下载”。所以用类似字符串userHome=System.getProperty(“user.home”)的字符串编写字符串URL;