Probleem bij uploaden van files naar server

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bart Jans

Bart Jans

22/01/2020 19:51:05
Quote Anchor link
Hallo allen,

ik heb een pagina in PHP gemaakt waar je via een form een bestand (in mijn geval een foto) kan selecteren om die te bewaren in een bepaalde directory.
Dit werkt prima, via :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type='file'>

dus.
Maar nu zou ik echter een andere pagina in zelfde project dienen te maken die een bepaalde directory scant (c:\uploads) bijvoorbeeld of er foto's in zitten en deze dan automatisch transferen naar de server + link aanmaken in mijn databank.

Via :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$dirContent = glob("uploads/ExcelUpload/*.{jpg,jpeg,gif,png,JPG,JPEG,PNG,GIF}", GLOB_BRACE);

verkrijg ik inderdaad een array van de files die ik wens. Maar, deze zijn slechts het path en filenaam (bijvoorbeeld c:\uploads\appel.jpg). Ik wens dezelfde achterliggende functies te gebruiken die reeds werken voor mijn pagina met form waar ik een file via "input file" gebruik. Op die pagina verkrijg ik met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$_FILES['Images']['tmp_name']

het path naar de echte foto. Op mijn "scan directory" pagina echter krijgt
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$_FILES['Images']['tmp_name']
enkel maar de string die ik doorstuur (c:\uploads\appel.jpg). Dit is dus slechts wat tekst en is niet de "echte" foto.

Ik zoek dus een manier om mijn foto's waarvan ik via de glob functie het path en naam ken de "echte" foto zelf te transfereren naar de temporary directory op de server waarvan ik ze kan transferen naar mijn database en naar de directory die ik wil.

Heeft iemand een idee hoe dit te doen ? Ik heb me ondertussen suf gezocht, en vind enkel maar voorbeelden waarvan men files upload via een form (input type = file), niet via een string van een file path. Hulp aub ! :)

Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 23/01/2020 14:49:27 door - Ariën -
 
PHP hulp

PHP hulp

20/02/2020 15:56:28
 
- Ariën -
Beheerder

- Ariën -

22/01/2020 21:07:32
Quote Anchor link
Hier ondersteunen we geen HTML, maar werken de opmaaktags met blokhaken.
 
Michael -

Michael -

22/01/2020 21:22:39
Quote Anchor link
Je kunt input file niet zomaar manipuleren uit veiligheid.
Je zou de bestanden kunnen downloaden met file_get_contents of curl.
En anders ze naar een andere server moeten zou je dit met FTP kunnen doen.

edit:
In de database plaats je normaliter geen fotos, maar alleen de verwijzing waar op de server de foto zich bevind.
Gewijzigd op 22/01/2020 21:24:31 door Michael -
 
Rob Doemaarwat

Rob Doemaarwat

22/01/2020 21:31:11
Quote Anchor link
Om de $_FILES te gaan lopen manipuleren is natuurlijk een beetje "gekunstel". Beter kun je een functie maken die "een" bestand verwerkt. Zowel vanuit je upload script als je scan script kun je dan gewoon dezelfde functie aanroepen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

function process_picture($filename,$name){
  //kopieer naar de juiste plek en met de juiste naam
}

//vanuit je upload script:
process_picture($_FILES['Images']['tmp_name'],$_FILES['Images']['name']);

//vanuit je scan script:
foreach($dirContent as $filename)
  process_picture($filename,basename($filename));

?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.