File clientside deleten met ActiveX?*

Pagina: 1
Acties:
  • 131 views sinds 30-01-2008
  • Reageer

  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Hallo,

Ik heb een webbased applicatie gemaakt waarin monteurs een bezoekrapportage kunnen maken terwijl ze niet verbonden zijn met internet of het intranet. De gegevens hiervan worden opgeslagen in een CSV-bestand welke ik aanmaak met ActiveX component FileSystemObject, dit werkt perfect!
Wanneer de monteurs wel verbonden zijn met hun laptop, moeten ze dit CSV-bestand kunnen uploaden en de gegevens hieruit kunnen opslaan in de MySQL database. Dit gaat prima met PHP.
Maar....
Wanneer dit bestand is geupload en de gegevens opgeslagen in de database, wil ik dat het bestand wat nog steeds lokaal op de laptop staat van de monteur wordt verwijderd.
Ik probeer dit ook met FileSystsemObject, maar dit lukt mij niet helemaal, kan het zijn dat een activeX object wat wordt uitgevoerd vanaf de webserver automatisch serversided wordt ipv clientsided?
Ik voer het ActiveX object wat moet worden uitgevoerd om het bestand te verwijderen uit in een PHP-script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<NOSCRIPT>
<P> Javascript is not currently enabled on your browser. If you can enable it, your input will be checked as you enter it (on most browsers, at least). You may find this helpful. </P>
</NOSCRIPT>
<script type="jscript">
var handle = new ActiveXObject('Scripting.FileSystemObject'); 
var file = handle.GetFile('C:\\map\\<?=substr($_GET['file'],4)?>');
file.MoveFile("C:\\map\\<?=substr($_GET['file'],4)?>", "C:\\map\\CSV\\<?=substr($_GET['file'],4)?>");
</SCRIPT>

<center>
<h5>De onnodige bestanden worden automatisch verwijderd...</h5>
<br>
<a href="laatst-mobile.php">Klik hier om terug te gaan</a>
</center>


De $_GET['file'] is verkort aan de eerste 4 karakters. Dit i.v.m. het feit dat deze variabele wordt gezien als 'CSV\bestand.csv', ik hoef hieruit alleen 'bestand.csv' te weten

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Gelukkig kan dit niet. :)

Het zou wat zijn dat iedereen zomaar bestanden kan verwijderen van mijn HD.

Huur mij in als freelance SEO consultant!


  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Op geen enkele manier?

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

CrashOne schreef op dinsdag 27 februari 2007 @ 13:10:
Gelukkig kan dit niet. :)

Het zou wat zijn dat iedereen zomaar bestanden kan verwijderen van mijn HD.
Maar hij kan wel files aanmaken :? ;)

Volgens mij is dit wel mogelijk, althans ik kom genoeg betaalde ActiveX componenten tegen die pretenderen het te kunnen. Kan me ook voorstellen dat je dat dmv een ActiveX component in een intranet omgeving zou willen kunnen doen :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Coach4All
  • Registratie: Januari 2003
  • Laatst online: 01-12 18:57

Coach4All

I'm a Coach 4 All

Het enige wat ik me kan bedenken is dat je lokaal een cmd-file neerzet die je met een variabele aanroept.

--- Systeembeheerdersdag --- Voedselintolerantie ---


  • DizzyVacation
  • Registratie: November 2006
  • Niet online
Nee.

Anders als ik bepaalde sites bezoek zou mijn windows bv niet meer opstarten, leuk!

  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Maar als ik bv. een pagina aanmaak binnen de lokale app welke de CSV's onder elkaar zou opsommen met een verwijder-linkje ernaast met DeleteFile() (of een andere optie zou ook zijn knippen-plakken naar een soort history-map met MoveFile() ) dan zou het wel kunnen? Het gaat er volgens mij puur om dat het script alleen lokaal uitgevoerd kan worden anders zou inderdaad elke website je PC kunnen beschadigen.

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Ik heb n een opsommer voor FileSystemObject, maar die werkt niet.. is het weer een stukje wat ik mis van MS uit of is het iets anders? ik heb dit :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<html>
<head>
<title>Overzicht</title>
<link rel="stylesheet" type="text/css" href="lay-out.css" />
<script type="text/javascript">
function ShowFolderFileList("C:\\map\\")

{

   var fso, f, f1, fc, s;

   fso = new ActiveXObject("Scripting.FileSystemObject");

   f = fso.GetFolder(folderspec);

   fc = new Enumerator(f.files);

   s = "";

   for (; !fc.atEnd(); fc.moveNext())

   {

      s += fc.item();

      s += "<br>";

   }

   return(s);

}

</script>
<body onLoad="ShowFolderFileList();">

</body>
</html>


Ik krijg ook de volgende 2 foutmeldingen: Er is een Runtime Error opgetreden. Er wordt een ID en resp. een object verwacht.
Deze fout heeft betrekking op regel 9 en regel 34, deze staan voor de <script> en </script> tags.. :S

[ Voor 13% gewijzigd door burrug op 27-02-2007 14:50 ]

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13:49

Janoz

Moderator Devschuur®

!litemod

Regel 6 klopt natuurlijk niet. Je definieerd een functie, maar vult ipv de parameter een constante in. Dat kan natuurlijk niet.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Zo ook goeiemorgen... :D foutje van mij hij moet idd zo:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<html>
<head>
<title>Overzicht</title>
<link rel="stylesheet" type="text/css" href="lay-out.css" />
<script type="text/javascript">
function ShowFolderFileList(folderspec)

{

   var fso, f, f1, fc, s;

   fso = new ActiveXObject("Scripting.FileSystemObject");

   f = fso.GetFolder(folderspec);

   fc = new Enumerator(f.files);

   s = "";

   for (; !fc.atEnd(); fc.moveNext())

   {

      s += fc.item();

      s += "<br>";

   }

   return(s);

}

</script>
<body onLoad="ShowFolderFileList('C:\\bezoekrapport\\');">

</body>
</html>


Maar nu wordt er nog niks opgesomt.. :D hihi
Ik krijg wel de vraag of ik de ActiveXwil laten toestaan, dus deze werkt wel

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Kicken doen we niet binnen 24 uur, je kunt rustig afwachten

[ Voor 79% gewijzigd door André op 27-02-2007 16:30 ]

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


  • Setragasj
  • Registratie: Augustus 2001
  • Laatst online: 01-12 11:33

Setragasj

is using radars to communicate

<Typ een persoonlijk bericht>


  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 18-11 20:57
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function ManipFiles()

{

   var fso, f1, f2, s;

   fso = new ActiveXObject("Scripting.FileSystemObject");

   // Get handles to files' current location.

   f3 = fso.GetFile("c:\\temp\\testfile.txt");

   // Delete the files.

   f3.Delete();

   Response.Write("All done!");

}

Volgens mij zou dit moeten werken...


*overgenomen uit de MSDN en ietsjes aangepast

[ Voor 6% gewijzigd door Alex) op 27-02-2007 19:36 ]

We are shaping the future


  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Ok ik begrijp het al iets meer, maar ik wil nu niet meer de bestanden verwijderen maar de bestanden opsommen en vervolgens wanneer ik het bestand aanklik, het bestand verplaatsen naaer een backupmap.. dit gaf ik geloof ik al eerder aan maar dat maakt niet zoveel uit :)
Ik heb nu iets als dit (wat lokaal wordt uitgevoerd op de laptop van de monteur):
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<html>
<head>
<title>Overzicht</title>
<link rel="stylesheet" type="text/css" href="lay-out.css" />
<script type="text/javascript">
function MoveFile2History(filespec)

{

   var fso;

   fso = new ActiveXObject("Scripting.FileSystemObject");

   fso.MoveFile(filespec, "c:\\bezoekrapport\\history\\");

}
</script>
<script type="text/javascript">
function ShowFolderFileList(folderspec)

{

   var fso, f, f1, fc, s;

   fso = new ActiveXObject("Scripting.FileSystemObject");

   f = fso.GetFolder(folderspec);

   fc = new Enumerator(f.files);

   s = "";

   for (; !fc.atEnd(); fc.moveNext())

   {

      s += fc.item() + "&nbsp;<a href=\"MoveFile2History("+ fc.item() +")\">Archiveer</a>";

      s += "<br>";

   }

   return(s);

}
</script>
<body onLoad="ShowFolderFileList('C:\\bezoekrapport\\');">
</body>
</html>

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 18-11 20:57
...MoveFile2History("+ fc.item() +")...

Ik denk dat dat niet zo gaat werken aangezien je een verwijziging niet zo kunt doorgeven. Als je daar nu gewoon een volledige filename zet, en dan in je MoveFile2History-functie daar weer een handle aan koppelt moet het wel lukken...

We are shaping the future


  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
fc.item is juist de bestandsnaam welke hij opsomt toch?

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 18-11 20:57
Weet je dat zeker? Volgens mij was fc.item juist een handle ernaar, da's iets anders...

We are shaping the future


  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
fc = new Enumerator(f.files); 

   s = ""; 

   for (; !fc.atEnd(); fc.moveNext()) 

   { 

      s += fc.item() + "&nbsp;<a href=\"MoveFile2History("+ fc.item() +")\">Archiveer</a>"; 

      s += "<br>"; 

   } 


volgens mij is fc.item wel de bestdandsnaam, omdat hij die uit de enumerator komt en vervolgens in een for-lus geplaatst wordt..

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


  • killercow
  • Registratie: Maart 2000
  • Laatst online: 28-11 15:56

killercow

eth0

Volgens mij is activeX voor verschillende duidelijke redenen een dead-end, kun je niet beter de client-side oplossingen van Firefox 3.0 gaan gebruiken?

Of eventueel zelf een app in elkaar draaien met een combinatie van XUL die je lokaal kunt draaien, en een normale web-app voor tijdens de connected uren?

(ik denk dat vooral de offline web-application opties in FF3, en de local storage je verder kunnen helpen)

XUL is eigenlijk gewoon xml/html met javascript en css, dus dat is niet lastig om onder de knie te krijgen.

Besides that ben je dan iig van je IE dependency af, want met XUL runner zou je er ook een stand-alone multi-platform ap van kunnen bakken. (zonder afhankelijk van firefox te worden)

openkat.nl al gezien?


  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 18-11 20:57
...hetgeen een complete overhaul betekent van alles wat de TS nu al aan werk heeft liggen. Lijkt me niet dat hij dat gaat doen, bovendien is Fx 3.0 nog een zeer vroege alpha, de codenaam is niet voor niets Minefield..

We are shaping the future


  • killercow
  • Registratie: Maart 2000
  • Laatst online: 28-11 15:56

killercow

eth0

Alex) schreef op vrijdag 02 maart 2007 @ 21:31:
...hetgeen een complete overhaul betekent van alles wat de TS nu al aan werk heeft liggen. Lijkt me niet dat hij dat gaat doen, bovendien is Fx 3.0 nog een zeer vroege alpha, de codenaam is niet voor niets Minefield..
Ja, dat snap ik, maar ik denk dat hij er op de lange termijn een hele boel mee kan verbeteren.
FF3 is inderdaad nog een vroege alpha, mar dat wil niet zeggen dat xul-runner, of zijn applicatie tegen de tijd dat het live moet niet prima kunnen draaien.

Echte crashes zitten er niet in (ik draai minefield als minstens een half jaar), en de bugs die er wel in zitten, die kom je dan ook tegen als je app in elkaar zet, waardoor je ze dus van te voren kunt oplossen. Tis ook niet meteen de bedoeling dat de TS nu alles aan de kant gooit, maar ik denk dat vooruit kijken naar een nieuwe techniek geen kwaad kan.

openkat.nl al gezien?

Pagina: 1