java上传图片到服务器指定路径

Python010

java上传图片到服务器指定路径,第1张

        private File myFile //文件

private String myFileContentType //类型

private String myFileFileName    //文件名

//。。。。getXXX() setXXX()方法

//输入流

InputStream is = new FileInputStream(myFile)

//设定文件路径

String photoPath = ServletActionContext.getServletContext()

.getRealPath("/user/photo/")

File filePhotoPath = new File(photoPath)

//判断这个路径是否存在,如果不存在创建这个路径

if (!filePhotoPath.isDirectory()) {

filePhotoPath.mkdir()

}

String extension = FilenameUtils.getExtension(this

.getMyFileFileName())   //后缀名 比如jpg

String filename = UUID.randomUUID().toString() + "." + extension

// 目标文件

File tofile = new File(photoPath, filename)

// 输出流

OutputStream os = new FileOutputStream(tofile)

byte[] buffer = new byte[1024]

int length = 0

while ((length = is.read(buffer)) > 0) {

os.write(buffer, 0, length)

}

// 关闭输入流

is.close()

// 关闭输出流

os.close()

<img src="111.png" />引用的是同一目录下的,你上面那段代码根本就没输出到那个目录当然找不到了。 对于一个项目来说图片有个专有的文件夹存放,比如在WebRoot的imageFolder下,那么你在输出流写图片的时候要指定好这个相对路径,然后页面上用<img src="../imageFolder/111.png" />

通常来说解决方案是这样的:以一个图片上传的例子为例,首先会在xml文件中配置好上传文件的绝对路径(例如C:/XXDX/XX这样,将来部署到服务器上时,修改配置文件路径就好了)然后比如我们上传的图片都是用输入流写到xx/xx/war/upload中 (我看你后增加的代码中没有flush(),是不对的) 然后在页面jsp中用/upload/xxx.png取值,之所以这么取是因为“/”是war根目录,当然你要是用"../"那种方式你要查明白你现在的目录级别。