NutzCN Logo
问答 文件上传可以指定路径吗?
发布于 2394天前 作者 qq_412bd180 1462 次浏览 复制 上一个帖子 下一个帖子
标签:
//上传资料类型音频文件
	@At("/upload")
	@Ok("json")
    @AdaptBy(type = UploadAdaptor.class,args = { "${app.root}/WEB-INF/wavTmp", "8192", "UTF-8", "20000" })
	public NutMap upload( ...

默认文件路径是:
\WEB-INF\wavTmp\00\00\00\00\00\00\00\01.wav

文件夹太深了

10 回复

那是 "临时文件"

能给一个复制到webapp某个路径下的代码吗? 谢谢了

怎么设置拷贝到的相对路径呢?

Mvcs.getServletContext().getRealpath("/")

不过,放在webcontent下不是很好的,放在项目外的一个路径比较好,读取的时候通过入口方法走

代码如下:

//上传资料类型音频文件
	@At("/upload")
	@Ok("json")
    @AdaptBy(type = UploadAdaptor.class,args = { "${app.root}/WEB-INF/wavTmp", "8192", "UTF-8", "20000" })
	public NutMap upload(
            @Param("Filedata") TempFile  f,
            HttpServletRequest req,
            ServletContext context, @Param("stationTypeIdHidden") int stationtypeid) throws SQLException, IOException {

		Path newFile = Paths.get(f.getFile().getPath()); 
		String copiedFilePath=Mvcs.getServletContext().getRealPath("/")+"wavUploads\\"+f.getFile().getName();
		Path copiedFile = Paths.get(copiedFilePath);  
	  
	    try {  
	        Files.copy(newFile, copiedFile, StandardCopyOption.REPLACE_EXISTING);  
	        System.out.println("File copied successfully!");  
	  
	    } catch (IOException e) {  
	        e.printStackTrace();  
	    }
	    
	    String wavPath=copiedFilePath;
	    		
	    wavPath=wavPath.substring(wavPath.indexOf("\\wavUploads\\"),wavPath.length());
		
		StationType stationType=dao.fetch(StationType.class, stationtypeid);
		stationType.setWavPath(wavPath);
		dao.update(stationType);
		
		String msg="上传成功!";
		
		return NutMap.NEW().addv("msg", msg);
	}

每次改动文件 保存的音频文件就没了
大大您说的"不过,放在webcontent下不是很好的,放在项目外的一个路径比较好,读取的时候通过入口方法走"
应该放在哪里合适 ? 比如 "c:\wavUploads\ ??

选个文件, 最好是从配置文件读取路径

大大 能说详细些吗?

@Inject
PropertiesProxy conf;

public xxxx {
String dstPath = conf.get("upload.dir", "/web/images") + "/" + R.UU32() + ".jpg"; 

添加回复
请先登陆
回到顶部