webForumDet fria alternativet

Infoga sidobjekt till formulär via POST

6 svar · 353 visningar · startad av sinned

sinnedMedlem sedan aug. 200237 inlägg
#1

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

JojoxxMedlem sedan juni 20004 308 inlägg
#2

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).

sinnedMedlem sedan aug. 200237 inlägg
#3

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

JojoxxMedlem sedan juni 20004 308 inlägg
#4

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).

sinnedMedlem sedan aug. 200237 inlägg
#5

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?

JojoxxMedlem sedan juni 20004 308 inlägg
#6

Vi flyttar över tråden till Java-forumet så får vi se om någon har praktiserat det.

sinnedMedlem sedan aug. 200237 inlägg
#7

Har ännu ingen lösning...

Ser kanske ut som om jag hittat lösnigen men det har jag ännu inte gjort. Så om någon vet hur man skickar ett java-objekt till servern så är jag väldigt tacksam att få reda på hur.

:) Dennis

135 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
132 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)