|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
|
[HTML/JSP] accedere a un file locale sul client senza fare l'upload
Salve, vi espongo il mio problema. Possiamo fare il caso semplice di una pagina HTLM o JSP, per cui ho una pagina web (con sotto classi java se può servire), a cui accede un client. Questp client ha un file, chiamiamolo X, che a me serve. Io da pagina web senza fare nessun upload sul server, devo poter dare un semplice comando su questo file, quindi al massimo l'utente deve irmi dove è posizionato (questo comando serve a separare il file e da esso creare altri 2 file X1 e X2), e poi fare l'upload di X1 e X2 sul server (e per l'upload non ho problemi).
Quello che non sò è come poter dare un comando su un file, dalla pagina web, che si trova in una cartella locale del client, e salvare "l'output" in una cartella temporanea, sempre sul client e poi fare l'upload. Spero di aver esposto in maniera corretta il problema...Grazie
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
credo che solo con JS non sia possibile per questioni di sicurezza, ma è possibile farlo con l' utilizzo di ActiveX.
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Apr 2004
Messaggi: 56
|
Ciao!
Solo con ActiveX e servlets, e solo se l'utente permette all'activex/servlet di avere il diritto di accesso al file locale! Addirittura avevo lavorato con delle servlete che si interfacciavano con i drivers TWAIN per accedere direttamente allo scanner installato sul pc client!! Zak |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
|
Per gli activeX non saprei come usarli (mi servono per lo più in ambiente linux), per le servlet è quello che stò usando (portlet e servlet). Ma on riesco a capire come poterlo fare......o meglio, io credevo che nn si potesse proprio fare!!
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Feb 2010
Messaggi: 466
|
secondo me dovresti creare una applet java che girando completamente in locale ( se i permessi glielo consentono) puo operare sul file , dividerlo e quindi successivamente collegarsi al server remoto per l'upload.
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
Le servlet agiscono lato server, quindi non hai modo di lavorare in client-side.
E' anche valido il consiglio di operare con le applet. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
|
quindi mi dite che l'unica possibilità è usare un applet?? si accettano consigli a riguardo allora..
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
no, l'applet non funzionerebbe perché di default le applet non hanno accesso al filesystem locale. prova pure, non ci riuscirai mai senza modificare il file della policy.
comunque a me non sembra tanto strano che non sia possibile accedere al filesystem dell'utente in una web application, fatta eccezione per l'upload di files che avviene con un meccanismo molto controllato (tag <input> di tipo "file" in un tag <form>); mi sembra che ci siano questioni di sicurezza evidenti. credo che l'unica soluzione sia quella di chiedere fiducia all'utente e di fargli lanciare un programma eseguibile da scaricare dal tuo sito. l'operazione potrebbe essere resa poco pallosa realizzando un programma Java e distribuendolo tramite WebStart (l'utente dovrebbe solo cliccare un link e accettare un certificato). OT: qualche giorno fa ho programmato per hobby e per necessitá una piccola utility si chiama Password Store e serve a memorizzare dati di login in un file criptato e protetto da password; é utile perché permette di raccogliere in un solo file tutti gli account e passwords che si usano in giro per internet. non é ancora completa, servirebbero diverse rifiniture qua e lá, peró giá funziona perfettamente. vi starete chiedendo cosa c'entra c'entra perché la distribuisco tramite Java Web Start e quindi é per farti vedere come verrebbe un programma distribuito in questo modo: http://wintoys.altervista.org/ps come dicevo prima, basta cliccare un link e accettare un certificato, autofirmato in questo caso perché francamente non avevo soldi da spenderci ![]() a titolo informativo, i files generati dal programma vengono criptati facendone lo XOR bit a bit con la sequenza pseudocasuale SHA1 generata usando come seed l'hash SHA-256 della password, quindi c'é una discreta sicurezza. PS: ok lo ammetto, la sto linkando anche per spammare pubblicitá abusiva ![]() PPS: credo che prima o poi ne faró un opensource. |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Feb 2010
Messaggi: 466
|
se non ricordo male ,
per far accedere una applet al sistema locale , basta semplicemente firmarla, anche con un certificato "fai da te" all'avvio della applet ti si chiede se ci si fida , e se dai OK , puo agire tranquillamente. |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
|
fero86 ho visto l'applicazione
Cmq se basta far comparire la stessa schermata che ho visto per l'applicazione di fero86, allora siamo a cavallo...posso procurarmi un certificato tranquillamente (o almeno dovrei riuscirci). Ma si può fare questo senza far installare o scaricare nulla all'utente? (nel caso di fero86 ho dovuto scaricare quel picolo file ed eseguirlo)...magari facendo tutto via browser... ps fero86 mi dai qualche dritta per realizzare una schermata come quella? (poi la classe sotto la faccio io XD).
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread |
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
Quote:
gepeppe, per fare il deploy di un'applicazione o di un applet tramite JNLP devi scrivere un file JNLP, che é un file XML con una certa struttura descritta qui: http://java.sun.com/javase/6/docs/te...de/syntax.html dalla pagina delle specifiche é possibile scaricare anche il DTD completo e annotato. il mio file JNLP é fatto cosi: Codice:
<?xml version="1.0" encoding="utf-8"?> <jnlp version="1.1" codebase="http://www.wintoys.altervista.org/ps/"> <information> <title>Password Store</title> <vendor>WinToys</vendor> <homepage href="http://www.wintoys.altervista.org/ps/index.html"/> <description kind="one-line">Password Store</description> <description kind="short">A program to store passwords safely in an encrypted password file.</description> <description kind="tooltip">Password Store</description> <offline-allowed/> <shortcut> <desktop/> <menu/> </shortcut> <association extensions="pws" mime-type="application/pwstore"> <description>Password Store File</description> </association> </information> <security> <all-permissions/> </security> <resources> <j2se version="1.6+"/> <jar href="PasswordStore.jar" main="true"/> </resources> <application-desc main-class="com.a71104.password.MainForm"/> </jnlp> e anche qua: http://java.sun.com/javase/6/docs/te...eployment.html |
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
|
Allora, ho provato a fare un test semplicissimo, il classico helloword, ma ho sempre un errore. Questo è il file jnpl: http://dl.dropbox.com/u/5143875/HelloWorld.jnlp mentre qui c'è la classe main: http://dl.dropbox.com/u/5143875/Main.jar
Quindi dalla home mi scarico il file .jnpl, (oppure basta liccare sul link che vi ho dato del file) una volta scaricato ci clicco sopra e mi esce questo errore: Codice:
com.sun.deploy.net.JARSigningException: Trovata una voce non firmata nella risorsa: http://dl.dropbox.com/u/5143875/Main.jar at com.sun.javaws.security.SigningInfo.getCommonCodeSignersForJar(SigningInfo.java:382) at com.sun.javaws.security.SigningInfo.check(SigningInfo.java:256) at com.sun.javaws.LaunchDownload.checkSignedResourcesHelper(LaunchDownload.java:1384) at com.sun.javaws.LaunchDownload.checkSignedResources(LaunchDownload.java:1170) at com.sun.javaws.Launcher.prepareLaunchFile(Launcher.java:1020) at com.sun.javaws.Launcher.prepareToLaunch(Launcher.java:306) at com.sun.javaws.Launcher.prepareToLaunch(Launcher.java:183) at com.sun.javaws.Launcher.launch(Launcher.java:104) at com.sun.javaws.Main.launchApp(Main.java:403) at com.sun.javaws.Main.continueInSecureThread(Main.java:250) at com.sun.javaws.Main$1.run(Main.java:111) at java.lang.Thread.run(Thread.java:619) Codice:
<?xml version="1.0" encoding="UTF-8"?> <jnlp codebase="http://dl.dropbox.com/u/5143875/" href="HelloWorld.jnlp"> <information> <title>HelloWorld</title> <vendor>Peppe</vendor> </information> <security> <all-permissions/> </security> <resources> <j2se version="1.6+"/> <jar href="Main.jar" main="true"/> </resources> <application-desc main-class="helloworld.Main"/> </jnlp> Codice:
package helloworld;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Main
{
public static void main(String[] args)
{
JFrame fin = new JFrame("Hello World");
fin.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
fin.setSize(300,300);
Container c = fin.getContentPane();
JPanel pan = new JPanel();
JLabel la = new JLabel ("Hello World");
pan.add (la);
c.add(pan);
fin.setVisible (true);
}
}
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread Ultima modifica di gepeppe : 09-03-2010 alle 11:59. |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
forse mi ero spiegato male, il requisito fondamentale affinché l'applet funzioni fuori dalla sandbox é che sia firmato...
EDIT - applet o applicazione che sia |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
|
ho firmato il file, ho trovato una guida su come farlo. Ma cmq non funziona...non c'è da qualche parte qualche esempio base??? anche la sola scritta helloword funzionanete basta
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:26.





















