[PHP][FTP] Lokaal bestand uploaden

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • TheRicolaa10
  • Registratie: Juni 2012
  • Laatst online: 17:33
Hallo,

Ik ben al enige tijd bezig met een eigen project voor een evenement, afgelopen keer hebben we tests gedaan tijdens het evenement. Maar omdat er oude mensen het programma handmatig bijhouden in Excel en weinig technische kennis hebben liep het volledig in de soep.. Voor aankomend jaar wil ik het meer automatiseren dmv cron jobs.

Is het mogelijk om door middel van PHP en FTP een lokaal bestand te selecteren en dan te uploaden? Volgens mij zit je met wat security issues, maar ik kon op internet niet echt iets vinden.

Alvast bedankt!

Groetjes,
TheRicolaa10

DJI Mavic 3 Classic | i7-8700 - GTX1070Ti - 16GB RAM


Acties:
  • 0 Henk 'm!

  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

Ik snap niet waarom er php gebruikt moet worden ?
zoek gewoon op cron job ftp


excel en linux ? erm ? snap niet meer. dacht dat dat niet kon

[ Voor 31% gewijzigd door Fish op 09-07-2015 19:34 ]

Iperf


Acties:
  • 0 Henk 'm!

  • TheRicolaa10
  • Registratie: Juni 2012
  • Laatst online: 17:33
Fish schreef op donderdag 09 juli 2015 @ 19:31:
Ik snap niet waarom er php gebruikt moet worden ?
zoek gewoon op cron job ftp


excel en linux ? erm ? snap niet meer. dacht dat dat niet kon
Aangezien mijn idee was om het op te zetten via cPanel. Het leek me een handige en makkelijke oplossing. En omdat ik weinig met de commandline kan (behalve git dan).

Ik heb in Excel een apart tabblad gemaakt die de data die ik nodig heb normaliseert en dat tabblad sla ik op als CSV bestand. Op de huidige site staat een upload script die die de data pakt en in de database stopt.

[ Voor 37% gewijzigd door TheRicolaa10 op 09-07-2015 19:38 ]

DJI Mavic 3 Classic | i7-8700 - GTX1070Ti - 16GB RAM


Acties:
  • 0 Henk 'm!

  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

en weinig technische kennis hebben liep het volledig in de soep.
mm ok ...pot verwijt de ketel dat die zwart ziet zie ik alweer

Ik ben aardig linux noob. maar in ben er van overtuigt dat ik een conjob aan kan maken en een script kan kopieren van internet. ik zou even kijken naar mijn zoek


maar goed met php
dan zie ik dit http://www.cronjob.nl/
en zoiets, http://code.tutsplus.com/...th-php-and-ftp--net-20012

daar moet vast wel iets mee te kneden zijn

Iperf


Acties:
  • 0 Henk 'm!

  • TheRicolaa10
  • Registratie: Juni 2012
  • Laatst online: 17:33
Fish schreef op donderdag 09 juli 2015 @ 19:43:
[...]

mm ok ...pot verwijt de ketel dat die zwart ziet zie ik alweer

Ik ben aardig linux noob. maar in ben er van overtuigt dat ik een conjob aan kan maken en een script kan kopieren van internet. ik zou even kijken naar mijn zoek


maar goed met php
dan zie ik dit http://www.cronjob.nl/
en zoiets, http://code.tutsplus.com/...th-php-and-ftp--net-20012

daar moet vast wel iets mee te kneden zijn
Die technische kennis had niks met mij te maken, maar meer met de mensen die in de wedstrijdwagen zaten. Die tutorial heb ik inderdaad ook gevonden, maar geeft geen antwoord op mijn vraag, of het mogelijk is om een bestand te selecteren lokaal op een computer vanuit PHP.

DJI Mavic 3 Classic | i7-8700 - GTX1070Ti - 16GB RAM


Acties:
  • 0 Henk 'm!

  • 8088
  • Registratie: December 2000
  • Niet online

8088

NaN

TheRicolaa10 schreef op donderdag 09 juli 2015 @ 19:17:
Is het mogelijk om door middel van PHP en FTP een lokaal bestand te selecteren en dan te uploaden?
Ja.

Do you seek to engage in or have you ever engaged in terrorist activities, espionage, sabotage, or genocide?


Acties:
  • 0 Henk 'm!

  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

^^ 8088 is me voor

Iperf


Acties:
  • 0 Henk 'm!

  • TheRicolaa10
  • Registratie: Juni 2012
  • Laatst online: 17:33
Hoe? Als ik de class van de tutorial gebruik en ik gebruik het absolute pad naar mijn bestand.
code:
1
$fileFrom = 'C:\Users\Gebruiker\Desktop\zondagochtend.csv';


Dan geeft hij aan dat hem niet kan vinden.

DJI Mavic 3 Classic | i7-8700 - GTX1070Ti - 16GB RAM


Acties:
  • 0 Henk 'm!

  • Xudonax
  • Registratie: November 2010
  • Laatst online: 07-10 13:38
Je zit op Windows, dus je zult ofwel dubbele slashes moeten gebruiken, ofwel slashes die de andere kant op "vallen". Werkt het dan wel?

Acties:
  • 0 Henk 'm!

  • TheRicolaa10
  • Registratie: Juni 2012
  • Laatst online: 17:33
Xudonax schreef op donderdag 09 juli 2015 @ 20:35:
Je zit op Windows, dus je zult ofwel dubbele slashes moeten gebruiken, ofwel slashes die de andere kant op "vallen". Werkt het dan wel?
Beide manieren geprobeerd:
code:
1
C:/Users/Gebruiker/Desktop/zondagochtend.csv

code:
1
C://Users/Gebruiker/Desktop/zondagochtend.csv


Ik werk wel vanaf mijn domein, heeft dat er iets mee te maken dat het niet werkt?

DJI Mavic 3 Classic | i7-8700 - GTX1070Ti - 16GB RAM


Acties:
  • 0 Henk 'm!

  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 12-10 13:39

krvabo

MATERIALISE!

Je hebt nu:
- CSV op je lokale computer
- Een script op je server die je verwijst naar het pad op je lokale computer.

Dat werkt niet.
Wat wel werkt:
- CSV op je lokale computer
- Uploaden naar je server
- Een script op je server die je verwijst naar het pad op de server (waar je het bestand hebt geupload)

Dat uploaden naar je server kun je handmatig doen (via cpanel). Je maakt een map aan waar mensen die csv in moeten plaatsen, en dan maak je een cronjob die elke minuut / elke x minuten / elk uur wordt getriggerd en een php-file aanroept die kijkt of er bestanden staan in die map, en die verwerkt.

Of in plaats van die cronjob kun je ook daarna handmatig naar de .php file gaan in je browser die de csv moet verwerken.

Wat je nu probeert is dat de server even lekker op jouw lokale computer gaat rondwroeten. Dat werkt natuurlijk niet. Je zult het eerst naar je server moeten uploaden (een upload script waarbij je gewoon de csv kiest werkt dan dus ook prima, maar dat moet je wel beveiligen. Op die manier heb je geen cronjob nodig, maar verwerkt het phpbestand gewoon meteen de csv. Deze manier is het beste.)

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.


Acties:
  • 0 Henk 'm!

  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

Hij heeft het wel over met php een lokaal bestand uploaden. dan neem ik aan dat de php parser draaid op de machine waar het bestand op staat.

maar ja .. het is duidelijk anders in de tussentijd

Wil je de file pullen of pushen ? naar je server/van je client

[ Voor 14% gewijzigd door Fish op 09-07-2015 21:01 ]

Iperf


Acties:
  • 0 Henk 'm!

  • Tjolk
  • Registratie: Juni 2007
  • Laatst online: 10:06
Heb je voor jezelf al eens het proces uitgetekend zoals je denkt dat het moet gaan functioneren? En bij elke stap in dat proces bedacht wat de mogelijkheden en de problemen zijn?

Je focust nu heel erg op het stukje "bestand van computer X naar computer Y kopiëren". Is op diverse manieren op te lossen, maar geautomatiseerd via FTP wordt dat lastig als beide computers niet gegarandeerd beschikbaar zijn. En als ze al beschikbaar zijn, dan moet je nog fixen dat de bron waar het bestand vandaan komt, toestemming geeft aan de "vragende server" (client) om bij de bestanden te komen. En last but not least: je moet het adres van de computer in kwestie weten en zeker weten dat die niet verandert.

Gewoon handmatig uploaden via een formulier is een stuk gemakkelijker. Die Excel moet toch bewerkt worden, waarom na het bewerken niet meteen uploaden? Is maar een kleine extra handeling. Heb je veel meer controle over en je kunt meteen feedback geven als er iets niet goed gaat.

Vervolgens zit je nog met het volgende punt: hoe ga je die Excel uitlezen? Ga je rekening houden met alle varianten van Excel? Of ga je afdwingen dat alléén versie 2013 gebruikt gaat worden bijvoorbeeld? Ga je werken met CSV? Zo ja: hoe ga je afdwingen welke delimiters en separators er gebruikt gaan worden? Hoe ga je de "oude mensen met gebrek aan kennis" dit uitleggen?

Zo kan ik nog wel even doorgaan, maar de kern van het verhaal is: wat is je doel? Hoe wil je het proces laten verlopen? Denk dáár eens over na. Ga niet zeggen "ik wil Excel vervangen door PHP en Cron Jobs". Want dat is alsof je zegt "Ik wil een voetbalveld vervangen door een winkelcentrum en een kalender".

Tjolk is lekker. overal en altijd.


Acties:
  • 0 Henk 'm!

  • TheRicolaa10
  • Registratie: Juni 2012
  • Laatst online: 17:33
Bedankt voor de reacties!

Op dit moment werkt het bij mij al zo, voordat ik aan de cron jobs etc begon. Ik heb al een upload functie, die alleen csv accepteert. Daarna pak ik de data van de csv en gaat het rechtstreeks de database in.

Ik was alleen benieuwd of ik de stap van het uploaden misschien kon overslaan, maar aan de reacties te lezen is dat dus niet mogelijk.

[ Voor 3% gewijzigd door TheRicolaa10 op 10-07-2015 19:54 ]

DJI Mavic 3 Classic | i7-8700 - GTX1070Ti - 16GB RAM


Acties:
  • 0 Henk 'm!

  • regtur2
  • Registratie: December 2008
  • Laatst online: 09:55
TheRicolaa10 schreef op vrijdag 10 juli 2015 @ 19:53:
Bedankt voor de reacties!

Op dit moment werkt het bij mij al zo, voordat ik aan de cron jobs etc begon. Ik heb al een upload functie, die alleen csv accepteert. Daarna pak ik de data van de csv en gaat het rechtstreeks de database in.

Ik was alleen benieuwd of ik de stap van het uploaden misschien kon overslaan, maar aan de reacties te lezen is dat dus niet mogelijk.
Ik begrijp niet helemaal wat je wil doen, of hoe je het wil doen maar misschien heb je hier iets aan:

via FTP
Als je alleen een lokaal bestand via ftp op een ftp-server wil zetten, dan kan je een batchbestand maken die dit doet met cmd op windows (http://www.nsftools.com/tips/MSFTP.htm). Dit batchbestand kun je dan via Taakplanner (cron) om de zoveel tijd aanroepen. PHP is hiervoor dus op de lokale machine niet nodig. Vervolgens een cronjob op de server om het bestand om de zoveel tijd in de lezen.

via PHP
Als je php wil gebruiken, dan moet je php installeren op de lokale machine. Als je vervolgens een makkelijke manier wil om de gegevens uit de lokale csv in de externe database te krijgen, dan zou ik de verwerking van een formulier op de server maken waarnaar je (de inhoud van) de csv stuurt. (let op dat je iets van authenticatie inbouwt, ook dit kan eenvoudig door een soort token te genereren die aan beide kanten hetzelfde is en gecheckt wordt)
Het script op de lokale machine moet dan de gegevens naar de server sturen. Voor dit laatste zou ik CURL gebruiken. (http://www.html-form-guide.com/php-form/php-form-submit.html). Vervolgens moet je met de Taakplanner, om de zoveel tijd, het php script aanroepen op de lokale machine.

Acties:
  • 0 Henk 'm!

  • Chocochaos
  • Registratie: Februari 2007
  • Laatst online: 07-10 16:39
TheRicolaa10 schreef op vrijdag 10 juli 2015 @ 19:53:
Bedankt voor de reacties!

Op dit moment werkt het bij mij al zo, voordat ik aan de cron jobs etc begon. Ik heb al een upload functie, die alleen csv accepteert. Daarna pak ik de data van de csv en gaat het rechtstreeks de database in.

Ik was alleen benieuwd of ik de stap van het uploaden misschien kon overslaan, maar aan de reacties te lezen is dat dus niet mogelijk.
Het bestand zal vanafr je lokale pc naar de server moeten, daar kun je niet omheen. Dat kun je oplossen door het handmatig te uploaden, maar ook bijvoorbeeld door een webservice op te zetten op de PC waarop het bestand staat, waarmee de server het bestand kan downloaden. Of dat praktisch is voor wat jij wilt betwijfel ik echter.
Pagina: 1