Ik heb een upload scriptje.
Hoe kan ik ervoor zorgen dat tijdens het uploaden de bestands rechten op 600 worden gezet?
Het upload scriptje:
Als ik chmod hier gebruik:PHP Code:
<?
$locatie="scripts/";
$toegestaan = "jpg, gif, png";
$max_size = 15000000;
set_time_limit(0);
if(isset($_POST['upload']))
{
if(is_uploaded_file($_FILES['bestand']['tmp_name']))
{
$extensie_bestand = pathinfo($_FILES['bestand']['name']);
$extensie_bestand = $extensie_bestand[extension];
$extensies_toegestaan = explode(", ", $toegestaan);
for($i = 0; $i < count($extensies_toegestaan); $i++)
{
if($extensies_toegestaan[$i] == "$extensie_bestand")
{
$ok = 1;
}
}
if($ok == 1)
{
if($_FILES['bestand']['size']>$max_size)
{
echo "Het bestand is te groot, de maximale grootte is: <b>$max_size</b>";
exit;
}
if(!move_uploaded_file($_FILES['bestand']['tmp_name'],
$locatie.$_FILES['bestand']['name']))
{
echo "het bestand kan niet worden verplaatst";
exit;
}
echo "Het bestand ".$_FILES['bestand']['name']." is geupload<br>s
<a href='".$locatie."".$_FILES['bestand']['name']."' target='_blank'>Klik hier om het te bekijken</a>";
}
else
{
echo "Verkeerde extentie, de toegestane extensies zijn: <b>$toegestaan</b>";
}
}
else
{
echo "Het uploaden is mislukt";
}
}
?>
<br><br>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>" enctype="multipart/form-data">
<input type="file" name="bestand"><br>
<input type="submit" name="upload" value="uploaden">
</form>
Dan zegt hij dat het bestand niet bestaat:PHP Code:
echo "Het bestand ".$_FILES['bestand']['name']." is geupload<br>s
<a href='".$locatie."".$_FILES['bestand']['name']."' target='_blank'>Klik hier om het te bekijken</a>";
chmod($_FILES['bestand']['name'], 0600);
Warning: chmod() [function.chmod]: No such file or directory in /home/robxqecw/domains/opensourcescript.nl/public_html/verkoop.php on line 51
En nog 1 vraagje:
Als ik 2 x met de zelfde naam upload, schrijft hij het gewoon over. Hoe kan ik dit oplossen?
Alvast bedankt.
- tijdens uploaden chmodden
-
19-01-2010, 22:14 #1
- Berichten
- 214
- Lid sinds
- 17 Jaar
tijdens uploaden chmodden
-
In de schijnwerper
ZwangerschapInWeken.nl DA10 - Zwangerschapskalender - Calculator - Veel contentWebsite te koopTe koop webshop shopify officetown. 500 omzet - kantoorartikelen - Bol accountsWebsite te koopLinkvada.com Linkbuilding Platform: Direct Linkbuilden op 77.000+ premium domeinenLinkpartnersEstavisumamerika.nl - Bestel je ESTA bij een Nederlands bedrijfWebsite te koop -
19-01-2010, 22:22 #2
- Berichten
- 330
- Lid sinds
- 18 Jaar
PHP Code:<?
$locatie="scripts/";
$toegestaan = "jpg, gif, png";
$max_size = 15000000;
set_time_limit(0);
if(isset($_POST['upload']))
{
if(is_uploaded_file($_FILES['bestand']['tmp_name']))
{
$extensie_bestand = pathinfo($_FILES['bestand']['name']);
$extensie_bestand = $extensie_bestand[extension];
$extensies_toegestaan = explode(", ", $toegestaan);
for($i = 0; $i < count($extensies_toegestaan); $i++)
{
if($extensies_toegestaan[$i] == "$extensie_bestand")
{
$ok = 1;
}
}
if($ok == 1)
{
if($_FILES['bestand']['size']>$max_size)
{
echo "Het bestand is te groot, de maximale grootte is: <b>$max_size</b>";
exit;
}
if(!move_uploaded_file($_FILES['bestand']['tmp_name'],
$locatie.$_FILES['bestand']['name']))
{
echo "het bestand kan niet worden verplaatst";
exit;
} else {
chmod($locatie.$_FILES['bestand']['name'], 0600);
}
echo "Het bestand ".$_FILES['bestand']['name']." is geupload<br>s
<a href='".$locatie."".$_FILES['bestand']['name']."' target='_blank'>Klik hier om het te bekijken</a>";
}
else
{
echo "Verkeerde extentie, de toegestane extensies zijn: <b>$toegestaan</b>";
}
}
else
{
echo "Het uploaden is mislukt";
}
}
?>
<br><br>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>" enctype="multipart/form-data">
<input type="file" name="bestand"><br>
<input type="submit" name="upload" value="uploaden">
</form>
Edit: "En nog 1 vraagje:
Als ik 2 x met de zelfde naam upload, schrijft hij het gewoon over. Hoe kan ik dit oplossen?"
Gewoon een andere naam toewijzen aan het 2e bestand.
PHP Code:move_uploaded_file($_FILES['bestand']['tmp_name'], $locatie.'new-'.$_FILES['bestand']['name']);
Laatst aangepast door Arjen Rademaker : 19-01-2010 om 22:34
-
19-01-2010, 22:23 #3
- Berichten
- 427
- Lid sinds
- 16 Jaar
Ik denk dat je dit via FTP kan doen,recht muisknopje op elke bestand en gewoon veranderen naar 644 (waarom 600?)
mvg
radule
-
19-01-2010, 22:37 #4
- Berichten
- 214
- Lid sinds
- 17 Jaar
Dit omdat leden het bestand moeten gaan uploaden en dan moet het gelijk op (het getal dat ik wil) worden gezet zodat niemand het kan downloaden behalve als ik daar toestemming voor geef.
-
19-01-2010, 22:51 #5
- Berichten
- 2.971
- Lid sinds
- 18 Jaar
$_FILES['bestand']['name'] is ook niet de plaats van het bestand.
-
19-01-2010, 22:53 #6
- Berichten
- 330
- Lid sinds
- 18 Jaar
Je moet inderdaad zoals in mijn bovenstaande voorbeeld $locatie toevoegen voorafgaand aan $_FILES['bestand']['name'] .
-
19-01-2010, 22:53 #7
- Berichten
- 214
- Lid sinds
- 17 Jaar
chmod($locatie.$_FILES['bestand']['name'], 0600);
Zet hem wel op 600 dus??
EDIT:
Hooh arjen was me voor :)
-
19-01-2010, 22:55 #8
- Berichten
- 330
- Lid sinds
- 18 Jaar
-
19-01-2010, 23:08 #9
- Berichten
- 214
- Lid sinds
- 17 Jaar
-
19-01-2010, 23:10 #10
- Berichten
- 330
- Lid sinds
- 18 Jaar
PHP Code:if(file_exists($locatie.$_FILES['bestand']['name'])) {
echo 'Bestand bestaat al!';
} else {
// UPLOAD PROCES
}
-
20-01-2010, 13:42 #11
- Berichten
- 214
- Lid sinds
- 17 Jaar
Bedankt werkt ook weer :)
Nu weer een andere vraag:
Met dit scriptje hieronder kunnen alleen mensen die zijn ingelogt het weer downloaden (wanneer de rechten op 600 staan)
Dit werkt wel met txt bestanden. Maar als ik een zip bestand download en open krijg ik:
An error occurred while loading the archive.
zipinfo: cannot find zipfile directory in one of /home/ilja/Desktop/Dark(2).zip or
/home/ilja/Desktop/Dark(2).zip.zip, and cannot find /home/ilja/Desktop/Dark(2).zip.ZIP, period.
Iemand een idee? Dit moet ook met rar gaan werken.
PHP Code:<?php
include("includes/includes.php");
if(session_is_registered(myusername)){
// begin download script
$dir = 'scripts/'; //geef een map aan met eindslash (. voor deze map)
if(isset($_GET['bestand'])) //als ?bestand= bestaat
{
if(eregi('../', $_GET['bestand']) == FALSE) //als er geen ../ in de bestandsnaam voorkomt, dus geen upmap wordt aangevraagd
{
if(file_exists($dir.$_GET['bestand'])) //en ?bestand=.. is ook nog eens een bestaand bestand is
{
header('Content-type: Application/octet-stream'); //zet de header dat het bestand gedownload moet worden
//en dat het dus niet in de browser afgespeeld kan worden
header('Content-Disposition: attachment; filename='.$_GET['bestand']); //geef aan welk bestand gedownload moet worden
readfile($dir.$_GET['bestand']); //en open vervolgens dat bestand
}
else //als het bestand niet bestaat
{
echo 'bestand bestaat niet'; //echo dat
}
}
else //als er wel ../ in de bestandsnaam voorkomt
{
echo 'Deze map is niet toegankelijk'; //echo dat dat niet mag
}
}
else //als ?bestand= niet is opgegeven
{
echo 'Geen bestand opgegeven'; //echo dat
}
// end download script
}else{
echo "je bent niet ingelogt";
}
?>
-
20-01-2010, 14:56 #12
- Berichten
- 330
- Lid sinds
- 18 Jaar
zipinfo: cannot find zipfile directory in one of /home/ilja/Desktop/Dark(2).zip or
/home/ilja/Desktop/Dark(2).zip.zip, and cannot find /home/ilja/Desktop/Dark(2).zip.ZIP, period.
Probeer het eens met onderstaande:
PHP Code:<?php
include("includes/includes.php");
if(session_is_registered(myusername)){
// begin download script
$dir = 'scripts/'; //geef een map aan met eindslash (. voor deze map)
if(isset($_GET['bestand'])) //als ?bestand= bestaat
{
if(eregi('../', $_GET['bestand']) == FALSE) //als er geen ../ in de bestandsnaam voorkomt, dus geen upmap wordt aangevraagd
{
if(file_exists($dir.$_GET['bestand'])) //en ?bestand=.. is ook nog eens een bestaand bestand is
{
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$_GET['bestand'].'"');
header('Content-Transfer-Encoding: binary');
echo file_get_contents($dir.$_GET['bestand']); //en open vervolgens dat bestand
}
else //als het bestand niet bestaat
{
echo 'bestand bestaat niet'; //echo dat
}
}
else //als er wel ../ in de bestandsnaam voorkomt
{
echo 'Deze map is niet toegankelijk'; //echo dat dat niet mag
}
}
else //als ?bestand= niet is opgegeven
{
echo 'Geen bestand opgegeven'; //echo dat
}
// end download script
}else{
echo "je bent niet ingelogt";
}
?>Laatst aangepast door Arjen Rademaker : 20-01-2010 om 15:07
-
20-01-2010, 15:19 #13
- Berichten
- 214
- Lid sinds
- 17 Jaar
Wanneer ik dit gebruik krijg ik:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/robxqecw/domains/opensourcescript.nl/public_html/download.php:1) in /home/robxqecw/domains/opensourcescript.nl/public_html/includes/includes.php on line 2
Warning: Cannot modify header information - headers already sent by (output started at /home/robxqecw/domains/opensourcescript.nl/public_html/download.php:1) in /home/robxqecw/domains/opensourcescript.nl/public_html/download.php on line 14
Warning: Cannot modify header information - headers already sent by (output started at /home/robxqecw/domains/opensourcescript.nl/public_html/download.php:1) in /home/robxqecw/domains/opensourcescript.nl/public_html/download.php on line 15
Warning: Cannot modify header information - headers already sent by (output started at /home/robxqecw/domains/opensourcescript.nl/public_html/download.php:1) in /home/robxqecw/domains/opensourcescript.nl/public_html/download.php on line 16
Warning: file_get_contents(scripts/Dark.zip) [function.file-get-contents]: failed to open stream: Permission denied in /home/robxqecw/domains/opensourcescript.nl/public_html/download.php on line 18
Maar er moet toch ook geen scripts invoorkomen als ik de gedownloaden zip file open?
-
20-01-2010, 15:22 #14
- Berichten
- 330
- Lid sinds
- 18 Jaar
Controleer of je geen whitespaces voor je <?php hebt staan en de session_start helemaal bovenaan je script staat. En controleer ook even of het bestand Dark.zip wel in de map "scripts" staat anders klopt het sowieso niet. En heb je wel rechten tot de map "scripts"?
-
20-01-2010, 15:28 #15
- Berichten
- 214
- Lid sinds
- 17 Jaar
whitespaces was het probleem.
Nu als ik hem download krijg ik nog steeds:
zipinfo: cannot find zipfile directory in one of /home/ilja/Desktop/Dark(4).zip or
/home/ilja/Desktop/Dark(4).zip.zip, and cannot find /home/ilja/Desktop/Dark(4).zip.ZIP, period.
Als ik het zip bestand met notepad open krijg ik:
<br />
<b>Warning</b>: file_get_contents(scripts/Dark.zip) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: Permission denied in <b>/home/robxqecw/domains/opensourcescript.nl/public_html/download.php</b> on line <b>18</b><br />
lijn 18:
echo file_get_contents($dir.$_GET['bestand']); //en open vervolgens dat bestand
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic