Upload fil Upload fil skal ses som et alternativ til at indsende tællefiler vedhæftet til mails Upload fil kan være en hurtigere og mere håndholdt måde at få data ind i Mastra på. Man starter med via Gennemse -knappen at vælge den eller de filer, som man vil indlæse; filerne skal ligge på et fil-drev, som er forbundet til ens PC. Vær opmærksom på, at det er tællefiler, der bliver valgt, og vælg ikke mere end 10 ad gangen. I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen imastra@vd.dk, eller kmastra@vd.dk. I Track-id feltet kan man skrive et tal, som man efterfølgende kan bruge til at holde styr på hvor lang ens filer er nået i indlæsnings-processen. Herefter klikker man på Upload. Af tekniske årsager skal man nu logge ind i Mastra igen. Hvis man anvender Upload-faciliteten flere gange i træk, er det kun første kan man skal logge ind. Der kommer nu en boks up på skærmen, som fortæller hvordan selve indsendelsen er forløbet. Herefter kan man følge hvordan det går med den videre indlæsning i Mastra ved at søge i den nederste del af skærmbilledet.
Vis tællefilen. Rapport med ugeoversigt. Mastra udtræksbillede til rapporter. Ret konfiguration via Unikort. Bemærk at denne funktion kun er tilgængelig for tællesteder, der har status: Autooprettet. STLA 16.08.2017
Appendiks 2 Java-kode, Test-eksempel package MastrVbVWS; import java.io.file; import java.io.ioexception; import java.io.inputstream; import java.net.authenticator; import java.net.passwordauthentication; import java.util.list; * This program demonstrates a usage of the MultipartUtility class. * @author www.codejava.net * JE1 Tilrettet public class TestMutiformUploadExample { public static void main(string[] args) { String charset = "UTF-8"; File uploadfile1 = new File("c:/jetest/262C0001.DMP"); File uploadfile2 = new File("c:/jetest/504C0126.DMP"); String requesturl = "http://vdextapp160.vdext.dk/pls/mastra_upload/osa.fil_upload_pkg.fil_upload_action"; Authenticator.setDefault(new Authenticator() { protected PasswordAuthentication getpasswordauthentication() { return new PasswordAuthentication("jeudv", xxxxxxxx".tochararray()); ); try { MultipartUtility multipart = new MultipartUtility(requestURL, charset); multipart.addheaderfield("user-agent", "CodeJava"); multipart.addheaderfield("test-header", "Header-Value"); multipart.addformfield("i_track_id", "12345"); multipart.addformfield("i_profil", "kmastra"); multipart.addfilepart("i_file", uploadfile1); multipart.addfilepart("i_file", uploadfile2); List<String> response = multipart.finish(); System.out.println("SERVER REPLIED:");
for (String line : response) { System.out.println(line); catch (IOException ex) { System.err.println(ex); package MastrVbVWS; import java.io.bufferedreader; import java.io.file; import java.io.fileinputstream; import java.io.ioexception; import java.io.inputstreamreader; import java.io.outputstream; import java.io.outputstreamwriter; import java.io.printwriter; import java.net.httpurlconnection; import java.net.url; import java.net.urlconnection; import java.util.arraylist; import java.util.list; * This utility class provides an abstraction layer for sending multipart HTTP * POST requests to a web server. * @author www.codejava.net * public class MultipartUtility { private final String boundary; private static final String LINE_FEED = "\r\n"; private HttpURLConnection httpconn; private String charset; private OutputStream outputstream; private PrintWriter writer; * This constructor initializes a new HTTP POST request with content type * is set to multipart/form-data * @param requesturl * @param charset * @throws IOException public MultipartUtility(String requesturl, String charset) throws IOException { this.charset = charset;
// creates a unique boundary based on time stamp boundary = "===" + System.currentTimeMillis() + "==="; URL url = new URL(requestURL); httpconn = (HttpURLConnection) url.openconnection(); httpconn.setusecaches(false); httpconn.setdooutput(true); // indicates POST method httpconn.setdoinput(true); httpconn.setrequestproperty("content-type", "multipart/form-data; boundary=" + boundary); httpconn.setrequestproperty("user-agent", "CodeJava Agent"); httpconn.setrequestproperty("test", "Bonjour"); outputstream = httpconn.getoutputstream(); writer = new PrintWriter(new OutputStreamWriter(outputStream, charset), true); * Adds a form field to the request * @param name field name * @param value field value public void addformfield(string name, String value) { writer.append("--" + boundary).append(line_feed); writer.append("content-disposition: form-data; name=\"" + name + "\"").append(line_feed); writer.append("content-type: text/plain; charset=" + charset).append( LINE_FEED); writer.append(line_feed); writer.append(value).append(line_feed); * Adds a upload file section to the request * @param fieldname name attribute in <input type="file" name="..." /> * @param uploadfile a File to be uploaded * @throws IOException public void addfilepart(string fieldname, File uploadfile) throws IOException { String filename = uploadfile.getname(); writer.append("--" + boundary).append(line_feed); writer.append( "Content-Disposition: form-data; name=\"" + fieldname + "\"; filename=\"" + filename + "\"").append(line_feed); writer.append( "Content-Type: " + URLConnection.guessContentTypeFromName(fileName))
.append(line_feed); writer.append("content-transfer-encoding: binary").append(line_feed); writer.append(line_feed); FileInputStream inputstream = new FileInputStream(uploadFile); byte[] buffer = new byte[4096]; int bytesread = -1; while ((bytesread = inputstream.read(buffer))!= -1) { outputstream.write(buffer, 0, bytesread); outputstream.flush(); inputstream.close(); writer.append(line_feed); * Adds a header field to the request. * @param name - name of the header field * @param value - value of the header field public void addheaderfield(string name, String value) { writer.append(name + ": " + value).append(line_feed); * Completes the request and receives response from the server. * @return a list of Strings as response in case the server returned * status OK, otherwise an exception is thrown. * @throws IOException public List<String> finish() throws IOException { List<String> response = new ArrayList<String>(); writer.append(line_feed).flush(); writer.append("--" + boundary + "--").append(line_feed); writer.close(); // checks server's status code first int status = httpconn.getresponsecode(); if (status!= HttpURLConnection.HTTP_OK) { throw new IOException("Server returned non-ok status: " + status); else { BufferedReader reader; reader = new BufferedReader(new InputStreamReader( httpconn.getinputstream())); String line = null; while ((line = reader.readline())!= null) {
response.add(line); reader.close(); httpconn.disconnect(); return response;