[php] Multi file upload maken *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • JoostMartijn
  • Registratie: December 2003
  • Laatst online: 17-04 15:22
Hi,

Ik heb een beetje inspiratie nodig. Ik wil zelf graag een script gaan schrijven die die meerde bestanden(files) in een keer kan gaan uploaden. Het is de bedoeling dat dit script meerde files achter elkaar upload met behulp van php.

Het moet niet een "file" input file zijn zoals bij html. Zodat je steeds 1 file kan gaan uploaden. Het script die ik wil gaan maken hoeft nog niet eens alle bestand ook daat werkelijk terug te gaan zetten, maar moet in de eerste instantie de namen(pads) van de files terug geven als variablen.

Heeft iemand een idee hoe ik dit moet gaan oplossen. Of weet iemand een Javascriptje die een gelijk iets kan gaan doen???

Windsoft


Acties:
  • 0 Henk 'm!

  • Markieman
  • Registratie: December 2001
  • Laatst online: 01-06 11:37
http://nl.php.net/manual/nl/features.file-upload.php

bedoel je dit?

code:
1
2
3
4
5
6
<form enctype="multipart/form-data" action="_URL_" method="post">
 <input type="hidden" name="MAX_FILE_SIZE" value="1000">
 Upload dit bestand: <input name="userfile1" type="file">
 Upload ook dit bestand: <input name="userfile2" type="file">
 <input type="submit" value="Upload!">
 </form>


PHP:
1
2
echo $_FILES['userfile1']['name']
echo $_FILES['userfile2']['name']

You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Clientside (javascript) ben je aan behoorlijke beveiligingsbeperkingen gebonden. Je kunt dus zo goed als niks anders dan gewoon een berg fileinputs genereren.

In het beste geval kun je dynamisch nieuwe fileinputs toevoegen als een gebruiker daarom vraagt.

Acties:
  • 0 Henk 'm!

  • satyriasis
  • Registratie: Januari 2000
  • Laatst online: 19-09 14:37
je kan ook met google ff zoeken naar jupload, alleen dat is java.

Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Javascript gestript uit de titel.

Professionele website nodig?


Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb wat code geselecteerd uit een eigen script, dit geeft je wat inspiratie om de code zelf verder af te maken:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<form action="upload.php" method="post" name="addphoto" enctype="multipart/form-data">
<input name="photocount" type="hidden" value="0">
...
<tr>
<td width="10"> </td>
<td width="50%" align="center">
<div id="image1" style="visibility: hidden;">
<input type="file" name="image[]"></div>
</td>
<td width="50%" align="center">
<div id="image2" style="visibility: hidden;">
<input type="file" name="image[]"></div>
</div>
</td>
</tr>

PHP:
1
2
3
4
5
6
  $photocount = (int)$_POST['photocount'];
  for ($i=0;$i<$photocount;$i++) {
    if ($_FILES['image']['tmp_name'][$i] != "") {
// doe iets leuks met je foto's
    }
  }

Acties:
  • 0 Henk 'm!

  • JoostMartijn
  • Registratie: December 2003
  • Laatst online: 17-04 15:22
Nee, dat is niet helemaal wat ik bedoelde. Ik wil geen hele rij met velden onder elkaar waar ik de heletijd bestand voor bestand moet aan klikken. Ik wil in een keer een map of een hele rij bestanden aan klikken en dan in 1 keer overfluiten naar een server

Java en Javascript is ook goed. Ik moet het alleen laten werken met Php

[ Voor 13% gewijzigd door JoostMartijn op 17-05-2004 09:57 ]

Windsoft


Acties:
  • 0 Henk 'm!

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
JoostMartijn schreef op 17 mei 2004 @ 09:55:
Nee, dat is niet helemaal wat ik bedoelde. Ik wil geen hele rij met velden onder elkaar waar ik de heletijd bestand voor bestand moet aan klikken. Ik wil in een keer een map of een hele rij bestanden aan klikken en dan in 1 keer overfluiten naar een server
Volgens mij gaat dit alleen lukken met een ActiveX achtige oplossing. Mensen moeten iets van je site downloaden en installeren.

Oops! Google Chrome could not find www.rijks%20museum.nl


Acties:
  • 0 Henk 'm!

  • Terranca
  • Registratie: April 2000
  • Laatst online: 18-09 18:25
Wat je misschien wel nog kan bekijken is of je een zipje vol met bestanden kan uploaden en automatisch laten uitzippen. Op die manier kan je dus wel in 1 keer een hele reeks bestanden uploaden. Volgens mij had PHP standaard al wat support voor zip bestanden, zo niet, zijn er plenty codes te vinden die een unzip functie implementeren.

Acties:
  • 0 Henk 'm!

  • JoostMartijn
  • Registratie: December 2003
  • Laatst online: 17-04 15:22
Ja, dat gaat ook niet werken. Omdat mensen zelf een helehoop bestanden moeten gaan uploaden. Dus ze moeten eigelijk gewoon een scherm krijgen dan met CTRL alle bestanden selecteren.

Die bestanden moet ik in een array zetten en dan de hele zooi naar de server kopieeren. Het gaat er vooral omdat het heel makelijk is voor de gebruikers van het script.

Het moet dus eigelijk een 1 <input type="file"> veld worden waar je een hele hoop bestanden in kan gaan zetten.

Weet iemand iets.

[ Voor 14% gewijzigd door JoostMartijn op 17-05-2004 10:23 ]

Windsoft


Acties:
  • 0 Henk 'm!

  • intermusic
  • Registratie: September 2002
  • Laatst online: 25-03 14:05

intermusic

Marc Hoekstra

Ik geloof niet dat je PHP kan laten scannen in een directory van de gebruiker, om te kijken welke bestanden erop staan, maar je kan het eens uitzoeken.
Misschien kan je het wel voormekaar krijgen, mits de te uploaden bestanden oplopende bestandsnamen hebben (dcp001.jpg, dcp002.jpg) deze via een for loop te pakken en dan te verwerken.

Acties:
  • 0 Henk 'm!

Verwijderd

Ben bang dat het niet gaat lukken.
Wat jij wilt is een FTP achtig iets, en dat gaat je met clientside scripting en PHP niet lukken gok ik. Je hebt te maken met time-outs en data-limieten.

De enige redelijke non-plugin oplossing is met meerdere input-file velden.
Als je met Java gaat werken zijn er wel leuke oplossingen, maar ik zou mn bezoekers dat niet gauw aandoen.

Er zijn talloze voorbeelden te vinden met bijv. Java.

Acties:
  • 0 Henk 'm!

  • JoostMartijn
  • Registratie: December 2003
  • Laatst online: 17-04 15:22
Weet iemand dan misschien een java script die kan laten zien wat voor files er op de computer staan van de gebruiker.

Windsoft


Acties:
  • 0 Henk 'm!

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

NMe

Quia Ego Sic Dico.

JoostMartijn schreef op 17 mei 2004 @ 12:17:
Weet iemand dan misschien een java script die kan laten zien wat voor files er op de computer staan van de gebruiker.
Pas op met die vraag, als een mod iets dergelijks leest sluiten ze je topic. Ik raad je aan eens op hotscripts.com te kijken...of zelf schrijven natuurlijk.

'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!

  • intermusic
  • Registratie: September 2002
  • Laatst online: 25-03 14:05

intermusic

Marc Hoekstra

Jah das idd een mooie vraag. Als dat eens zou kunnen dan staat het hele internet op zn kop 8)7 Dat is dus eigenlijk ook antwoord op de vraag, kan iets je harde schijf scannen. Nee dus...

Acties:
  • 0 Henk 'm!

  • JoostMartijn
  • Registratie: December 2003
  • Laatst online: 17-04 15:22
Nee, er zijn wel scriptjes die dat doen. Je ziet dan gewoon zo'n schermpje met alle bestanden van de computer. Vanuit dat schermpje kun je je bestanden overzetten naar een ander scherm. En deze geeft de waardes aan het script wat de uit eindelijke upload doet.

Je ziet dit vooral veel Met Java Applets

Windsoft


Acties:
  • 0 Henk 'm!

  • lucasvanlierop
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2018
Ben zelf ook over zoiets aan het nadenken en ik bedacht me dat het via een zipfile makkelijker zou moeten gaan.
De meeste gebruikers hebben (hier althans) wel een ziptooltje en php kan deze ook weer uitlezen en verder verwerken.

WinXP@P4-2,4 GHz+ Zalman 7000 cooler | ASUS P4PE | 1024MB DDR-RAM | 40 GB + 120 GB Seagate HD's | 2x Samsung 172T@Matrox G550+SiS 8 Mb PCI | RME Multiface


Acties:
  • 0 Henk 'm!

  • JoostMartijn
  • Registratie: December 2003
  • Laatst online: 17-04 15:22
Dat gaat nog steeds niet. Je moet dan de bestanden nog steeds stuk voor stuk selecteren. Voordat je kan gaan zippen en dan moet je ook nog een provider van je site hebben die remote - unzippen ondersteund.

Windsoft


Acties:
  • 0 Henk 'm!

  • Terranca
  • Registratie: April 2000
  • Laatst online: 18-09 18:25
Dan ben ik bang dat er geen mogelijkheid (tenzij je met ActiveX, Java Applets, etc gaat werken) is om te bereiken wat je wil. Gelukkig kan je met JavaScript geen harddisk scannen etc, zou me niet meer veilig voelen op internet :P

Acties:
  • 0 Henk 'm!

Verwijderd

waarom laat je het de mensen niet inpakken naar zip, het zip bestand uploaden en de server pakt het zip bestandje weer uit... het is even typwerk maar het werkt uiteindelijk wel...

Acties:
  • 0 Henk 'm!

  • JoostMartijn
  • Registratie: December 2003
  • Laatst online: 17-04 15:22
Het moet heel erg makkelijk blijven. Iedereen moet er mee kunnen werken ook mensen die helemaal geen verstand van pc's hebben. Dus mensen eerst dingen laten zippen dat is ook niet aan de orde.

Windsoft


Acties:
  • 0 Henk 'm!

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
JoostMartijn schreef op 17 mei 2004 @ 12:53:
Het moet heel erg makkelijk blijven. Iedereen moet er mee kunnen werken ook mensen die helemaal geen verstand van pc's hebben. Dus mensen eerst dingen laten zippen dat is ook niet aan de orde.
Het is inmiddels toch wel duidelijk dat het niet mogelijk is (of je moet een clientside iets als een java applet of activex object gebruiken)?

Oops! Google Chrome could not find www.rijks%20museum.nl


Acties:
  • 0 Henk 'm!

  • lucasvanlierop
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2018
Ik bedoel dus ook clientsize zippen, uploaden en door de server weer laten uitpakken, in mijn geval zou dit niet echt een probleem zijn, dus ik ga het binnenkort eens testen

WinXP@P4-2,4 GHz+ Zalman 7000 cooler | ASUS P4PE | 1024MB DDR-RAM | 40 GB + 120 GB Seagate HD's | 2x Samsung 172T@Matrox G550+SiS 8 Mb PCI | RME Multiface


Acties:
  • 0 Henk 'm!

  • satyriasis
  • Registratie: Januari 2000
  • Laatst online: 19-09 14:37
volgens mij heb ik tegen een muur gelult |:( oftewel voor de mensen die mijn kleine post ;) gemist hebben: ik zou ff zoeken naa jupload op google :)

Acties:
  • 0 Henk 'm!

Verwijderd

JoostMartijn schreef op 17 mei 2004 @ 12:53:
Het moet heel erg makkelijk blijven. Iedereen moet er mee kunnen werken ook mensen die helemaal geen verstand van pc's hebben. Dus mensen eerst dingen laten zippen dat is ook niet aan de orde.
ahh, das makkelijk.. mensen die geen verstand hebben van een pc kan je easy activex/java troep laten installen :D
satyriasis schreef op 17 mei 2004 @ 17:02:
volgens mij heb ik tegen een muur gelult |:( oftewel voor de mensen die mijn kleine post ;) gemist hebben: ik zou ff zoeken naa jupload op google :)
daar moet je vast ook ergens op Yes ofzo klikken zodat java op je schijf kan browsen, maar dat is dus geen enkel probleem volgens JoostMartijn :p

Acties:
  • 0 Henk 'm!

Verwijderd

bekijk dit scriptje eens, deze werkt met html javascript en php, zo kan je met html en javascript zoveel bestanden toevoegen als dat de gebruiker wilt... even ombouwen en je bent klaar.

Acties:
  • 0 Henk 'm!

  • JoostMartijn
  • Registratie: December 2003
  • Laatst online: 17-04 15:22
Hey....

Ik heb de moet opgegeven en ik heb mij gewend tot een java Applet. Dit werkt heel mooi. Ik kan nu wel 100 foto's in 1 keer uploaden...

Windsoft


Acties:
  • 0 Henk 'm!

  • PromWarMachine
  • Registratie: Oktober 2001
  • Laatst online: 19-09 22:28

PromWarMachine

Forsaken Archer

JoostMartijn schreef op 18 mei 2004 @ 15:12:
Hey....

Ik heb de moet opgegeven en ik heb mij gewend tot een java Applet. Dit werkt heel mooi. Ik kan nu wel 100 foto's in 1 keer uploaden...
Dat is een fijne mededeling, maar hoe heb je het nu opgelost dan? Voor de search wellicht wel zo leuk/handig :)

Dividend for Starters


Acties:
  • 0 Henk 'm!

  • JoostMartijn
  • Registratie: December 2003
  • Laatst online: 17-04 15:22
Ik heb het opgelost door een klein Java applet te maken. Deze doe ongeveer hetzelfde als Juploader van sourceforce.net. Maar omdat het voor commercieele doel einden gebruikt gaat worden heb ik het zelf gemaakt.

Deze applet geeft mij de als waarde steeds het pad van waarde foto staat op de hardeschijf van de andere pc. Deze upload ik dan door middel van een php script.

Als ze dan naar de server worden geschreven voor ik de url en het path van het bestand in de database zodat ik weet waar ze staan >:)

Windsoft


Acties:
  • 0 Henk 'm!

Verwijderd

Mischien leuk om ook een kopietje online te zetten? zodat wij de werking eens kunnen bekijken :)

Acties:
  • 0 Henk 'm!

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Kun je die browse functie met input type="file" ook los aanroepen en zelf de pad van de bestanden afvangen, bijv met javascript :?
Als dat zou kunnen, zou je dus alle bestanden onder elkaar in een textarea kunnen zetten of in een array.

En als je het op deze manier doet dan:
HTML:
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>File uploader</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<script>
  function AddFile()
  {
    if (document.form1.bestanden.value == '')
    {
    document.form1.bestanden.value = document.form1.bestand.value;
    }
    else
    {
    document.form1.bestanden.value = document.form1.bestanden.value 
+ '\n' + document.form1.bestand.value;
    }
  }
</script>
<form name="form1" enctype="multipart/form-data" method="post"
 action="http://www.eenofanderesite.nl/directory/upload.php">
  <input type="file" name="bestand" onChange="AddFile()"><br>
  <textarea rows="10" cols="50" name="bestanden" type="file"></textarea><br>
  <input type="submit" name="Submit" value="Submit">
</form>
</body>
</html>

Dit werkt nog niet helemaal foutloos, maar dan moet je even een soort van check inbouwen dat hij niet alles pakt.

Hier nog een site met wat uitleg erover:
http://www.cs.tut.fi/~jkorpela/forms/file.html#support

[ Voor 143% gewijzigd door eghie op 18-05-2004 18:48 . Reden: update ]


Acties:
  • 0 Henk 'm!

  • JoostMartijn
  • Registratie: December 2003
  • Laatst online: 17-04 15:22
Ja, het kan ook wel met een <input type="file"> en dan in een Array of Textarea zetten. Het probleem daar van is dat je dan nog steeds elk bestand appart moet selecteren.

Het wil alleen zoals ik hier boven heb beschreven met Java Applet :*)

Windsoft

Pagina: 1