[PHP][MySQL][VB6][VbNET] Upload bestand met rechtermuisknop

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
Beste Allemaal,

Sorry voor de verwarrende topictitel maar het is toch echt waar.

Ik zit met een klein probleempje en ik vind met mijn eigen gedachten de weg niet.
Op mijn werk hebben we een intranet servertje met daarop wel aardig wat bestanden. Nu wordt er een php scriptje gedraaid waarmee de gebruikers een word of excel bestandje kunnen oploaden naar de server. Tevens kunnen ze er een klantID aanhangen die dan via de andere kant in kan inloggen om het te dowloaden.
Werkt prima overigens, iedereen te vreden dus ik dacht geen probleem.

Daarna kwamen de gebruikers...ja we moeten iedere keer naar (intranet explorer) hahaha vond hem wel leuk. En of dat niet makkelijker kon.

Nu ben ik de laatste tijd bezig geweest met VB6 -> VBNET2003 en sinds gister avond VBNET2005... dat lukt allemaal heel aardig.
Nu heb ik het zieke idee om een tooltje te maken voor de gebruikers waarmee ze via de rechter muisknop het bestand up te loaden naar de server.

Zoals vroeger bij ICQ kon je met rechts op een bestand klikken en dan zeggen -> send to ICQ -> enz..

nu wil ik dus graag ook zo iets maken maar ik weet echt effe niet waar ik moet beginnen en vooral weermee en op wat voor manier.
Even wat ik zelf gedacht had.

1) PHP script op de server wat via een POST method een bestand kan opvangen.
2) Een VB oplossing die zorgt voor de rechtermuisknop

Nu is 1) dus geen probleem.
Maar 2) voor mij wel effe een probleem.
Geen idee waar ik moet beginnen.
Hoe zorg je er nu voor dat er in je rechtermuisknop menu van elk willekeurig bestand een item komt "Stuur naar intranet ->"
is dat VB-script
VB6 ? 2003 ? geen idee. 8)7

Ook dacht ik nog aan een ftp oplossing.
Dat kan ook dat zou ik met VB6 OF 2003 al goed kunnen maken maar
dan weer die rechtermuisnkop functie en hoe krijg ik het dan in MySQL
Tja een cron-index PHP scriptje zou kunnen..hmm wordt ik niet blij van.

Eindelijk dan dus mijn vraag?
Heeft iemand hier ervaring mee of geef andere suggesties of naja.
Alvast bedankt voor het meedenken

--Edit--
Bioj ons is er een mix van windows2000 en XP...op termijn gaat iedereen naar XP..maar das nogal een tijdrovend werkje.
Ik had inderdaad ook zitten denken aan de send to oplossing maar hoe vang ik dan het bestand? En hoe zet ik met een installer een linkje in die send to?

[ Voor 13% gewijzigd door vorlox op 21-10-2004 20:57 ]


Acties:
  • 0 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 18-09 19:05
Geen idee welke Windows versie ze gebruiken, maar kun je geen gebruiken maken van de Send-To oplossing die standaard al in Windows 2k/XP zit (rechtsklikken, send-to diskette, etc.). Deze moet je als het goed is kunnen aanpassen zodat ie ook bestanden naar bijvoorbeeld een website toe stuurt (alhoewel ik niet zeker weet of dat dan wel gaat).

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Ik geloof dat er ergens in het register van Windows een groep sleutels zit waarmee je dat context menu kan uitbreiden. Je zou eens kunnen kijken of je terug kan vinden hoe WinZip dat ongeveer doet. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
Afbeeldingslocatie: http://vorlox.xs4all.nl/webstuff/projectsendto.jpg
Ok Dat send to was dus zover wel een goed idee.
Het mapje send to is staat gewoon in doc&set\user\send to
*zucht*

Het lukt me dus all om de bestandsnaam op te pikken..
Nu dus de vraag wat doe ik ermee.
Ga ik ftpen en indexen met een cron-PHP
of ga ik hem posten naar een PHP webpagina

VB6CODE
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Option Explicit
Public SuccesMsg As Boolean

Sub Main()
SuccesMsg = True

Dim strCommand As String
'Get command line
strCommand = Command()

MsgBox strCommand

frmMain.Show
End Sub

[ Voor 14% gewijzigd door vorlox op 21-10-2004 21:16 ]


Acties:
  • 0 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 18-09 19:05
Kijk nu wordt het weer interessant voor mij aangezien ik dus niks heb met VB. Je hebt dus een bestandsnaam, maar nou nog een manier waarop je die bestandsnaam naar bijvoorbeeld PHP geeft.

Ik denk dat VB6 ook wel net-utils o.i.d. heeft. Hiermee moet je een post (of get, of elk HTTP-request) kunnen doen. Dan ben je eigenlijk al klaar.

FTP'en is niet echt een oplossing wil je ook die klantid gebruiken. Waarschijnlijk staat die in een database en dus zul je of in VB6 die db moeten benaderen of alsnog een PHP-script draaien.

[ Voor 25% gewijzigd door Postman op 21-10-2004 23:24 ]


Acties:
  • 0 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 20-09 18:24

TheBorg

Resistance is futile.

Ze staan gewoon hier:
C:\Documents and Settings\User\SendTo

Bijv:
C:\Documents and Settings\Administrator\SendTo

:)

-edit-
De shortcut maken we:
"C:\Program Files\Internet Explorer\IEXPLORE.EXE" http://www.pietje.nl/script.php?pagina=%1

script.php passen we aan zodat de waarde %1 automatisch in een file upload form wordt ingevoerd en de gebruiker hoeft alleen maar op ok te drukken :)

[ Voor 54% gewijzigd door TheBorg op 21-10-2004 23:22 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Afhankelijk van of de gebruikers nog iets moeten doen met de webpagina nadat ze het bestand geupload hebben, is het misschien ook een mogelijkheid om met jouw programmaatje:

Internet Explorer te openen, naar de goeie intranetpagina te sturen, en de bestandsnaam alvast in te vullen in het <Upload File> veldje (daar gaat wel wat IE automation in zitten, maar dat kan met VB nooit zo moeilijk zijn).

De gebruikers hoeven dan alleen nog maar op "Submit" (of wat dan ook) te drukken, en verder met de site te werken op de gebruikelijke manier.
TheBorg schreef op 21 oktober 2004 @ 23:15:
script.php passen we aan zodat de waarde %1 automatisch in een file upload form wordt ingevoerd en de gebruiker hoeft alleen maar op ok te drukken :)
Edit: Wat die andere Borg hier zegt is ook een goed plan en nog makkelijker ook (want geen automation) :>.

[ Voor 29% gewijzigd door Verwijderd op 21-10-2004 23:26 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Vergeet niet om ff met google te zoeken. Het zou natuurlijk zomaar kunnen dat speciaal hiervoor een vbs file beschikbaar is ofzo. Je weet het nooit.

Acties:
  • 0 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 18-09 19:05
Wat zijn jullie? Borg? :P

Volgens mij is dat dus niet wat de TS wilt. Zo'n soort systeem hebben ze al, en het aantal handelingen blijft hetzelfde. Daarbij is het openen van een scherm vaak 'verontrustend' en 'storend' en dus niet gewenst (vandaar dat hij ook een oplossing zoekt die direct via de rechtermuisknop werkt).

Acties:
  • 0 Henk 'm!

Verwijderd

Postman schreef op 21 oktober 2004 @ 23:26:
Volgens mij is dat dus niet wat de TS wilt. Zo'n soort systeem hebben ze al, en het aantal handelingen blijft hetzelfde.
Niet helemaal. Van mezelf weet ik dat ik het het storendst zou vinden als ik Internet Explorer zelf moest openen en dan naar de goede pagina op het Intranet moet gaan, om dan pas de file te kunnen verwerken. Als dit al automatisch wordt gedaan (door een optie in het context menu), is het al minder "busywork".
Daarbij is het openen van een scherm vaak 'verontrustend' en 'storend' en dus niet gewenst (vandaar dat hij ook een oplossing zoekt die direct via de rechtermuisknop werkt).
Bwah. Als de gebruiker iets in het contextmenu aanklikt kan hij er toch van uitgaan dat er "iets gaat gebeuren", dus een venster zou dan toch niet overdreven ongewenst of storend moeten zijn. Bovendien moet de gebruiker een klantid terug krijgen (zie TS), dus dan hoort er toch een soort van user interface te komen die de gebruiker dat kland-id meedeelt. Of het programma nu zelf een venster toont of een browservenster opent maakt denk ik niet veel uit.

En als je alle code op de server houdt is het makkelijker te onderhouden; dat je dus niet alle client programmaatjes op het hele bedrijf moet gaan aanpassen en opnieuw verspreiden als je iets aan de originele pagina verandert.

[ Voor 3% gewijzigd door Verwijderd op 21-10-2004 23:33 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 21 oktober 2004 @ 23:33:
Bwah. Als de gebruiker iets in het contextmenu aanklikt kan hij er toch van uitgaan dat er "iets gaat gebeuren", dus een venster zou dan toch niet overdreven ongewenst of storend moeten zijn. Bovendien moet de gebruiker een klantid terug krijgen (zie TS), dus dan hoort er toch een soort van user interface te komen die de gebruiker dat kland-id meedeelt. Of het programma nu zelf een venster toont of een browservenster opent maakt denk ik niet veel uit.
En als je alle code op de server houdt is het makkelijker te onderhouden; dat je dus niet alle client programmaatjes op het hele bedrijf moet gaan aanpassen en opnieuw verspreiden als je iets aan de originele pagina verandert.
Als je met google zoekt naar vbs en upload, dan krijg je meer dan genoeg resultaten voor een combinatie van IE en VBA zonder dat user interactie vereist zou zijn. Als dit voldoende is, dan is het probleem dus al opgelost.

Acties:
  • 0 Henk 'm!

Verwijderd

Oi,

Ik heb zelf in vb6 een stukje dat zorgt dat je gegevens kan ontvangen en versturen, het maakt gebruik van het XMLHTTP

Visual Basic:
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
Public Function uploadFile(ByVal user As String, ByVal file As String) As String
    
    Dim strText As String
    Dim s$
    Dim strBody As String
    Dim aPostData() As Byte
    Dim strFileName1 As String
    Dim oHTTP As XMLHTTP
    Dim nFile As Integer

    'make use of the XMLHTTPRequest object contained in msxml.dll
    Set oHTTP = New XMLHTTP

    'read the whole text file
    strFileName1 = file
    nFile = FreeFile
    Open strFileName1 For Binary As #nFile
        strText = String(LOF(nFile), " ")
        Get #nFile, , strText
    Close #nFile

    'fire of an http request !!! adapt path in next line
    oHTTP.Open "POST", "joiurl.nl/upload.php", False
    oHTTP.setRequestHeader "Content-Type", "multipart/form-data, boundary=AaB03x"

    'assemble the body. send one field and two files
    strBody = _
       "--AaB03x" & vbCrLf & _
       "Content-Disposition: form-data; name=""user""" & vbCrLf & vbCrLf & _
       user & vbCrLf & _
       "--AaB03x" & vbCrLf & _
       "Content-Disposition: attachment; name=""picture""; filename=""" & strFileName1 & """" & vbCrLf & _
       "Content-Type: image" & vbCrLf & vbCrLf & _
       strText & vbCrLf & _
       "--AaB03x" & vbCrLf & _
       "Content-Disposition: form-data; name=""submit""" & vbCrLf & vbCrLf & _
       "Send" & vbCrLf & _
       "--AaB03x--"

    'must convert to byte array because of binary zeros
    aPostData = StrConv(strBody, vbFromUnicode)
    
    'send it
    oHTTP.send aPostData
    
    ' send info back.
    uploadFile = oHTTP.responseText
  
End Function


Misschien dat je hier wat meer mee kan, ik heb het zelf gebruikt voor Quick Uploader Tool

owja, en wat je met php doet zijn maar een paar dingen.

1. check of post gedaan is.
2. check of user bestaat.
3. check of bestand bestaat.
4. als bestand == image zet image in juiste directory.
5. geeft xml terug met code 0 van correct verstuurd ofzo.

succes!

[ Voor 17% gewijzigd door Verwijderd op 22-10-2004 09:01 ]


Acties:
  • 0 Henk 'm!

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
Man allemaal super bedankt voor jullie tips het werkt als een trein.

Wat ik nu gedaan heb is alsvolgt
Ik heb een simpel PHP script gemaakt wat de file opvangt en in MySQL zet e.d
Verder heb ik dus nu een VB6 progje gemaakt wat de bestandsnaam opvangt en met de mooie code van citnetx post ik het naar de webserver.

Werkt echt als een trein.
En omdat jullie, jullie zijn en mij mooi geholpen hebben hier de code
en het script.

http://vorlox.xs4all.nl/projects/SendToHtmlPost.zip

http://vorlox.xs4all.nl/projects/SendTo_VB6Project.zip

Allemaal super bedankt...dit was mooi samendenken over deze oplossing.
Ik zal vanmiddag de kroketten in de kantine opdragen aan jullie hehehe ;)

Oja nog even over dat klant ID.
Ik heb het nu opgelost door een veld EncryptieSleutel te gebruiken.
Elke gebruiker bij ons heeft zijn eigen klanten set.
Dus elke gebruiker krijgt nu vanmij zijn eigen sleutel zeg maar.
En het PHP scriptje kan daaraan zien waar de file moet worden gehangen.
Lekker makkelijk...kweet niet of dat laatste stukkie voor jullie ook interessant is..anders sloop het er maar uit.

_/-\o_

[ Voor 36% gewijzigd door vorlox op 22-10-2004 10:29 ]


Acties:
  • 0 Henk 'm!

Verwijderd

ik zou zeggen, post ook even het scriptje (php); en ik zie dat je xmlhttp gebruikt :) mooi omgebouwd b.t.w _O_
Pagina: 1