@@ -329,6 +329,8 @@ private OpportunityDatasetUploadStatus createOpportunityDataset(Request req, Res
329329 OpportunityDatasetUploadStatus status = new OpportunityDatasetUploadStatus (regionId , sourceName );
330330 addStatusAndRemoveOldStatuses (status );
331331
332+ // TODO should we delete this temporary directory at the end?
333+ final File tmpDirectory = FileUtils .createScratchDirectory ();
332334 final List <File > files = new ArrayList <>();
333335 final List <FileItem > fileItems ;
334336 final FileStorageFormat uploadFormat ;
@@ -338,8 +340,9 @@ private OpportunityDatasetUploadStatus createOpportunityDataset(Request req, Res
338340 // Call remove() rather than get() so that subsequent code will see only string parameters, not the files.
339341 fileItems = formFields .remove ("files" );
340342 for (var fi : fileItems ) {
341- var dfi = (DiskFileItem ) fi ;
342- files .add (dfi .getStoreLocation ());
343+ var tmpFile = new File (tmpDirectory , fi .getName ());
344+ Files .move (((DiskFileItem ) fi ).getStoreLocation (), tmpFile );
345+ files .add (tmpFile );
343346 }
344347 uploadFormat = detectUploadFormatAndValidate (files );
345348 parameters = extractStringParameters (formFields );
@@ -541,7 +544,7 @@ private List<Grid> createGridsFromShapefile(List<File> files,
541544 }
542545
543546 // Copy the shapefile component files into a temporary directory with a fixed base name.
544- File tempDir = Files . createTempDir ();
547+ File tempDir = FileUtils . createScratchDirectory ();
545548
546549 File shpFile = new File (tempDir , "grid.shp" );
547550 Files .copy (filesByExtension .get ("SHP" ), shpFile );
0 commit comments