Skulle vilja fråga om det går att medskicka en bild och variabel från en Applet på formulärsidan?
Bildobjekt ( från en Applet på sidan ) är tänkt att medfölja med ett POST-formulär. Är det någon som vet om det går att göra?
:) Dennis
6 svar · 353 visningar · startad av sinned
Skulle vilja fråga om det går att medskicka en bild och variabel från en Applet på formulärsidan?
Bildobjekt ( från en Applet på sidan ) är tänkt att medfölja med ett POST-formulär. Är det någon som vet om det går att göra?
:) Dennis
I så fall om appletet sköter formulärspostningen själv (kolla på Java-forumet, be mig i så fall att flytta över tråden). Jag har svårt att tänka mig att du kan kombinera det med ett vanligt html-formulär eftersom det enda fältet som du kan skicka med filer är file-fältet och det är read-only normalt (eftersom du inte skall kunna lura användaren att skicka känslig information utan dennes godkännande).
sv: föregående
Tänkte bara säga att någon 'hemlig information' gäller det inte. Den information som jag vill skicka upp till servern finns bara internt på klientens HTML-sida. Och man tycker ju att ett formulär skall kunna ge vilken information som helst som finns på sidan. Jag är fortfarande av den uppfattning att man kan utföra detta, fast jag för dagen inte hittat lösningen. Hoppas att någon här på forumet kan ge mig något tips.
När det gäller var detta inlägg skall ligga består sidan hos klienten av HTML, javascript och en Applet. Formulärhanteringen för tillfället är sedvanlig HTML.
:) Dennis
sinned skrev:
Tänkte bara säga att någon 'hemlig information' gäller det inte.
Ja, jag misstror inte dig :) Men anledningen till att file-fält är read-only är en säkerhetsåtgärd.
sinned skrev:
Och man tycker ju att ett formulär skall kunna ge vilken information som helst som finns på sidan.
Ja, i princip. Data kan du lägga in i ett formulärsfält med document.forms['formulärsnamn'].elements['elementnamn'].value="whatever"; (JavaScript, men du kan med största sannolikhet göra på ett motsvarande sätt från appletet (=Java))Men jag ser en potentiell felkälla i om man försöker lägga in binär-data i ett formulärsfält som är avsett för ascii. Det kanske fungerar i någon webbläsare men inte i någon annan. Det är svårt att säga. Har du koll på applikationen som tar emot datat, alltså dit det postas kan du givetvis koda formulärsdatat till ascii innan du lägger in det i formuläret och sedan avkoda det på serversidan. Men det är får du fortfarande göra i appletet (=Java, ej JavaScript).
Tack för tipset Jojoxx, hittat i 'JAVA programmering för DUMMIES' ( rätt bok för mig kantänka ...) fann jag nedanstående kod. Jag har inga problem att avkoda en vanlig POST-fil på servern så min fråga är om man måste skriva ett CGI-dokument till servern eller om man kan ändra nedanstående kod till att skicka så att servern tar emot filen som en 'vanlig' POST-formulär-fil?
"
public void actionPerformed(
java.awt.event.ActionEvent event) {
try {
// post the data to a cgi script on the web server...
// your webserver goes here
String webServer = "www.My-Web-Server.com";
// the relative path, on your webserver,
// to the CGI script
String cgiScript = "/cgi-bin/MyScript.cgi";
// For info on the CGI specification see:
// <http://www.w3.org/pub/WWW/CGI/>
// build the argument string
String dataString = "";
for (Enumeration elems = take.elements();
elems.hasMoreElements(); ) {
dataString += elems.nextElement();
dataString += "&"; // provide a delimiter
}
dataString += (total + "&");
dataString += idField.toString();
Socket sock = new Socket(webServer, 80);
DataOutputStream outStream =
new DataOutputStream(sock.getOutputStream());
// send header
outStream.writeBytes("POST " + cgiScript + "\\n" +
"Content-type: plain/text\\n");
// tell the server how much data to expect
outStream.writeBytes("Content-length: " +
dataString.length() + "\\n\\n");
// send the data
outStream.writeBytes(dataString);
}
catch (Exception exception) {
System.out.println(exception);
}
}
}
"
:) Dennis
PS: Jojoxx, nu borde inlägget kanske flyttas över till Java-sidan?
Vi flyttar över tråden till Java-forumet så får vi se om någon har praktiserat det.