Skip to content

Instantly share code, notes, and snippets.

@cristiannsc
Created September 28, 2022 01:34
Show Gist options
  • Save cristiannsc/1fe76319a315f500a98410a545e27ff0 to your computer and use it in GitHub Desktop.
Save cristiannsc/1fe76319a315f500a98410a545e27ff0 to your computer and use it in GitHub Desktop.
Java file utils Service
import com.example.dtibackendgradle.NoSQL.repository.FileDcaEtcRepository;
import com.example.dtibackendgradle.NoSQL.util.FileDcaEtc;
import com.example.dtibackendgradle.Sql.model.Documento;
import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletContext;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
@Service
public class FileDcaEtcService {
@Autowired
private FileDcaEtcRepository repository;
//TODO: cambiar relativo al server
public List<String> saveFile(MultipartFile file) throws IOException {
String upload_folder = "/path/to/folder/";
File files = new File(upload_folder);
if (!files.exists()) {
files.mkdirs();
}
List<String> datos = new ArrayList<>();
if (!file.isEmpty()) {
byte[] bytes = file.getBytes();
Path path = Paths.get(upload_folder + "uploaded-" + file.getOriginalFilename());
System.out.println(path);
Files.write(path, bytes);
datos.add(path.toString());
datos.add(file.getOriginalFilename());
return datos;
} else {
datos.add("no");
return datos;
}
}
public MediaType getMediaTypeForFileName(ServletContext servletContext, String fileName) {
// application/pdf
// application/xml
// image/gif, ...
String mineType = servletContext.getMimeType(fileName);
try {
MediaType mediaType = MediaType.parseMediaType(mineType);
return mediaType;
} catch (Exception e) {
return MediaType.APPLICATION_OCTET_STREAM;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment