画像の仮想パスの設定
13792 ワード
1.はじめに仮想パスを構成する理由 画像をサーバにアップロードする必要がある場合、データベースに画像を格納するbase 64は明らかに良い方法ではありません.物理パスまたは仮想パス に格納できます物理パスを採用すると、プロジェクトがオンラインになった後、画像が取得できない可能性が高い.また、システムがアップグレードされ、全量の更新が必要な場合、すべてのリソースをコピーして更新する必要があります.これは面倒です. 仮想パスを使用すれば、URLで画像を取得できます. url="http://自分のドメイン名/プロジェクト名/images/"+fileName;
2.構成は一般的にプロファイルで構成できますが、既存のフレームワークを使用している場合は、オンラインでプロジェクトモジュールに接続できるjarパッケージで、プロファイルを変更することはできません.では、構成クラスを書くことができます. このように、ファイルをアップロードすると、DディスクのfileUploadフォルダにファイルが格納され、url(http://自分のドメイン名/images/ファイル名.ピクチャタイプ)でピクチャにアクセスできます.
3.ファイルアップロード
バックエンドコード:
フロントエンドコード:
2.構成
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* , ,
* @author chencf
*
*/
@Configuration
public class MyWebAppConfigurer
implements WebMvcConfigurer {
@Value("file:/D:/fileUpload/")
private String imagesPath;//
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
System.out.println(" =="+imagesPath);
registry.addResourceHandler("/images/**").addResourceLocations(imagesPath);
}
}
3.ファイルアップロード
バックエンドコード:
public Sspfy uploadFile( MultipartFile file,Sspfy sspfy) {
String url;
System.out.print(" ==="+"
");
//
String fileName = file.getOriginalFilename();
System.out.print(" : "+fileName+"
");
//
String contentType=file.getContentType();
fileName =UUID.randomUUID().toString().replace("-", "")+ fileName.substring(fileName.lastIndexOf('.'));
System.out.print(" : "+fileName+"
");
String path = "D:/fileUpload/" +fileName;
//
System.out.print(" "+path+"
");
//
File dest = new File(path);
//
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdir();
}
//
try {
file.transferTo(dest); //
System.out.print(" "+path+"
");
url="http://localhost:8085/images/"+fileName;//
sspfy.setName(fileName);
sspfy.setPath(path);
sspfy.setHousePhoto(url);
} catch (IOException e) {
e.printStackTrace();
}
return sspfy;
}
フロントエンドコード:
<div class="col-sm-10">
<a href="${sspfy.housePhoto!}" target="_blank"><img src="${sspfy.housePhoto!}" width="600"/>a>
div>