[php] file upload

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil een file uploaden naar de server (Coolfreepages.com)

Ze ondersteunen wel file upload enz.Maar ik krijg de temp naam niet te pakken.
Registered globals staan wel aan.

Heb al vanalles geprobeerd en via google gezocht ik kan niet vinden wat het misschien zou zijn.

PHP:
1
2
$_FILES['filenaam']['name'];
$filenaam_tmp;


Deze 2 zouden goed moeten zijn d8 ik maar dat is dus niet waar.

als ik bij beide een echo doe. dan zie ik niks. alleen $filenaam is te zien en dat is:

Mijn dir op mijn pc\\filenaam

Maar als ik dan het commando

PHP:
1
2
3
4
5
6
7
$pathweb = "/users/coolfreepages.com/war3mapcenter/images/";

$upload = copy($filenaam , pathweb);
if ($upload == false){
   print "Uploading of the file $filenaam went wrong. <BR> Please try again";
   exit;
}


Dan is hij altijd false. En geeft hij ook aan

Warning: Unable to open "C:\Plaatjes\Ftd50c.jpg" No such file or directory in /users/coolfreepages.com/war3mapcenter/php/Uplyrmap.phtml on line 25

Hij kan hem dus niet vinden/openen.

Weet iemand hoe ik dit op kan lossen. Want wat ik ook probeer niks werkt.

btw. Move_uploaded_file wil ook niet . ook al geprobeerd

Acties:
  • 0 Henk 'm!

Verwijderd

$_FILES['filenaam']['tmp_name'] misschien?

http://www.php.net/manual/en/features.file-upload.php
Daar staat meteen een voorbeeld.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 17 November 2002 @ 11:25:
$_FILES['filenaam']['tmp_name'] misschien?

http://www.php.net/manual/en/features.file-upload.php
Daar staat meteen een voorbeeld.
wil ook niet ook al geprobeerd

Acties:
  • 0 Henk 'm!

Verwijderd

copy($filenaam , pathweb);
->
copy($filenaam , $pathweb);
:?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 17 November 2002 @ 11:33:
copy($filenaam , pathweb);
->
copy($filenaam , $pathweb);
:?
bedoel ik ook..

de link naar de site is

http://war3mapcenter.coolfreepages.com/

het script zoals het nu is voor het uploaden:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$naampje = str_replace("C:\\\\WebServer\\\\WarCraft3\\\\images\\\\","",$minimap);

    $imgpicture = "[img]../images/$minimap[/img]";
    $pathpicture = "/users/coolfreepages.com/war3mapcenter/images/$naampje";

    $pathmap = "users/coolfreepages.com/war3mapcenter/Maps/$map";
    

    echo $minimap;
    echo "<br>";
    echo $minimap_name;
    echo "<br>";
    echo $minimap_tmp;
    echo "<br>";
    echo $minimap_size;
    echo "<br>";
    echo $minimap_type;

    $uploadpicture = copy($minimap_tmp , $pathpicture);
    if ($uploadpicture == false){
        print "Uploading of the file $minimap went wrong. <BR> Please try again";
        exit;
    }


Ik heb ook al meer dingen geprobeerd.

o.a.

$_FILES['minimap']['tmp_name']
$_FILES['minimap']

Ook heb ik dus alleen de jpg uit $minimap gevist. doet ook niks :(

Acties:
  • 0 Henk 'm!

  • Sn3akz
  • Registratie: November 2000
  • Laatst online: 05-08 13:55
Dit is wel het meest vage upload script wat ik ooit gezien heb...
Even terug naar het HTML from:
Wat is de naam van je upload-setje??
Wat type form is het?? (Moet WWW/Multipart.. etc) zijn
En Waarom je die str_replace doet is mij een raadsel

Acties:
  • 0 Henk 'm!

Verwijderd

Kijk hier eens:
http://62.250.9.120/artikelen.php?aid=76

Ik heb zelf dat script ff uitgeprobeerd...geen errors, maar ik kon de file zelf nergens terugvinden @ mijn server :+

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Sn3akz schreef op 17 november 2002 @ 11:44:
Dit is wel het meest vage upload script wat ik ooit gezien heb...
Even terug naar het HTML from:
Wat is de naam van je upload-setje??
Wat type form is het?? (Moet WWW/Multipart.. etc) zijn
En Waarom je die str_replace doet is mij een raadsel
voor jou speciaal:

html form

[html]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Upload Your map now!!! </TITLE>
<meta http-equiv="pragma" content="no-cache">
</HEAD>

<BODY bgcolor="000000" text="ffffff">

<form action="php/Uplyrmap.php" method="$_POST" enctype="multipart/form-data">
Mapname: <input type="text" name="namemap" ><BR>
Creators name: <input type="text" name="namecreator" ><BR>
Email of the Creator:<input type="text" name="emailcreator" ><BR>
The minimap: <input type="file" name="minimap" >(Only .jpg files accepted)<BR><BR>
The map: <input type="file" name="map" > (Only .w3m files accepted)<BR><BR>
Description of the map.<BR> <textarea rows="5" cols="40" name="Descriptionmap"></textarea><BR><BR>
<input type="submit" value="Upload your map now">
</form>

</BODY>
</HTML>

[/html]

verkorte php van het lange script met alleen de nodige dingen

PHP:
1
2
3
4
5
6
7
8
$pathpicture = "/users/coolfreepages.com/war3mapcenter/images/";


$uploadpicture = copy($minimap_tmp , $pathpicture);
if ($uploadpicture == false){
    print "Uploading of the file $minimap went wrong. <BR> Please try again";
                    exit;
}

Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb het!
Formpje:
http://217.120.48.160/upload/index.seb
Source upload.seb:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
echo $HTTP_POST_FILES['bestand']['name'];
echo "<br>";
echo $HTTP_POST_FILES['bestand']['type'];
echo "<br>";
echo $HTTP_POST_FILES['bestand']['size'];
echo "<br>"; 
echo $HTTP_POST_FILES['bestand']['tmp_name'];
$bestand=$HTTP_POST_FILES['bestand']['tmp_name'];
$bestand_name=$HTTP_POST_FILES['bestand']['name'];
echo "<br>";
if(is_uploaded_file($bestand)) {
copy($bestand,"$bestand_name");
echo "Het bestand is succesvol ge-upload";
}else{
echo "Er is iets fout gegaan, probeer het opnieuw.";
}

?>

:*)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
jah dat is het dus..

als ik echo $_HTTP_POST_FILES['bestand']['tmp_name'] doe dan zie ik ... NIX :'(


trouwens..

artikel op phpfreakz geprobeerd..
en die doet het ook niet ..

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 17 november 2002 @ 12:13:
jah dat is het dus..

als ik echo $_HTTP_POST_FILES['bestand']['tmp_name'] doe dan zie ik ... NIX :'(


trouwens..

artikel op phpfreakz geprobeerd..
en die doet het ook niet ..
Maar doe je script het nu?
Naast phpfreakz heb ik ook nog die van web-con gebruikt:
http://www.web-con.nl/site/tutorials.php?tutorial=221
Het ging mis met de target-dir, die pakte hij niet als ie ./upload/$bestand_name was :?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
antwoord van het script

$minimap = C:\\WebServer\\WarCraft3\\images\\Ftd50c.jpg

Er is iets fout gegaan, probeer het opnieuw

script :

PHP:
1
2
3
4
5
if(is_uploaded_file($minimap)) { 
    echo "Het bestand is succesvol ge-upload"; 
}else { 
    echo "Er is iets fout gegaan, probeer het opnieuw.";
}


(Dit is het script zoals het stond op de post hierboven.)

Even voor de duidelijkheid.

De plaats is op internet...
Webserver is ALLEEN de plaats van het plaatje.. niet de webserver thuis

Acties:
  • 0 Henk 'm!

Verwijderd

Als je dit schrijft in je <form>

code:
1
<input type="file" name="map" >


Dan moet je dit gebruiken:

PHP:
1
$_FILES['map']['tmp_name']


en niet de naam 'bestand'. Wil je alles zien wat die _$FILES bevat, doe dan ff:

PHP:
1
print_r($_FILES)


Dat staat dus allemaal mooi uitgelegd op de php site, waar er hierboven een link naar gegeven is... :/

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
heb ik ook gedaan die is leeg

staat trouwens in de eerste post al dat ik dat geprobeerd had

Acties:
  • 0 Henk 'm!

Verwijderd

Waarom doe je trouwens

code:
1
method="$_POST"


in je form en niet

code:
1
method="POST"


?

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 17 November 2002 @ 12:31:
heb ik ook gedaan die is leeg

staat trouwens in de eerste post al dat ik dat geprobeerd had
Is je form encryptie wel zo:
enctype="multipart/form-data"
Want bij mij is $HTTP_POST_FILES['bestand']['name'] dus niet leeg...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
maakt op zich niets uit.

behalve dat met $_POST alles ook in de URL komt

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 17 November 2002 @ 12:44:
[...]

Is je form encryptie wel zo:
enctype="multipart/form-data"
Want bij mij is $HTTP_POST_FILES['bestand']['name'] dus niet leeg...
yep..aleen bij mij is dat wel leeg :(

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 17 november 2002 @ 11:21:
Warning: Unable to open "C:\Plaatjes\Ftd50c.jpg" No such file or directory in /users/coolfreepages.com/war3mapcenter/php/Uplyrmap.phtml on line 25
Dit had ik dus ook met mijn scriptje!
Maar zo werkt ie wel:
copy($bestand,"$bestand_name");
Probeer dat eens.
Zonder target-dir dus! dan komt de file in dezelfde dir als je upload script.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ook dat script wil niet ..

PHP:
1
2
3
4
5
    $uploadmap = copy ($minimap,"$minimap_name");
    if ($uploadmap == false){
        print "Uploading of the file $minimap went wrong. <BR> Please try again";
        exit;
    }

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 17 November 2002 @ 12:44:
maakt op zich niets uit.

behalve dat met $_POST alles ook in de URL komt
Ik snap echt niet waar je het over hebt... je hebt method="GET" en method="POST", maar method="$_POST" slaat nergens op.

Als je action="<?=$_SERVER['REQUEST_URI'] ?>" doet met method="GET" dan stuur je alles wat je al had ook daar, maar dat doe je hier dus niet.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ok .. dan slaat het nergens.. als ik gewoon "POST" doe.
help niks!

dan is het nog altijd hetzelfde (Heb het net even voor je geprobeerd)

ow en trouwens .. ik zag wel alle variabelen in de URL met $_POST (maar ok maakt ook niet uit)

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 17 November 2002 @ 13:11:
ok .. dan slaat het nergens.. als ik gewoon "POST" doe.
help niks!

dan is het nog altijd hetzelfde (Heb het net even voor je geprobeerd)

ow en trouwens .. ik zag wel alle variabelen in de URL met $_POST (maar ok maakt ook niet uit)
Dan is er hier iets raars aan de hand...
1: Post je php versie (kun je zien in phpinfo();)
2: Sla deze source op als index.html, in de dir 'upload' (aanmaken indien nodig):
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<html>
<head>
<title>File upload</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form enctype="multipart/form-data" action="upload.php"
method="post">
  <input type="file" name="bestand"><br>
<input type="submit" value="Upload!">
</form>
</body>
</html>

3: Sla deze source op als upload.php, ook in de dir 'upload':
PHP:
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
<html>
<head>
<title>File upload</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<?
echo $HTTP_POST_FILES['bestand']['name'];
echo "<br>";
echo $HTTP_POST_FILES['bestand']['type'];
$type=$HTTP_POST_FILES['bestand']['type'];
echo "<br>";
echo $HTTP_POST_FILES['bestand']['size'];
echo "<br>"; 
echo $HTTP_POST_FILES['bestand']['tmp_name'];
$bestand=$HTTP_POST_FILES['bestand']['tmp_name'];
$bestand_name=$HTTP_POST_FILES['bestand']['name'];

echo "<br>";
switch($type){
    case "image/jpeg":
        if(is_uploaded_file($bestand)) {
        copy($bestand,"$bestand_name");
        echo "Je plaatje is succesvol ge-upload, het staat
 <a href=\"$bestand_name\" target=\"_self\">hier</a>.";
        }else{
        echo "Er is iets fout gegaan, probeer het opnieuw.";
        }
        break;
    case "image/gif":
        if(is_uploaded_file($bestand)) {
        copy($bestand,"$bestand_name");
        echo "Je plaatje is succesvol ge-upload, het staat
<a href=\"$bestand_name\" target=\"_self\">hier</a>.";
        }else{
        echo "Er is iets fout gegaan, probeer het opnieuw.";
        }
        break;
    default:
        echo "Je mag alleen .jpg of .gif plaatjes uploaden!";
        break;
}
?>
</body>
</html>

4: Probeer een .jpg/.gif te uploaden, en post hier de error.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik upload FTD60.JPG

Error:

Je mag alleen .jpg of .gif plaatjes uploaden!

Het is ook nog ..

Bij Coolfreepages mag ik:

Geen PHPinfo() opvragen
Geen socket functies gebruiken
Geen mail functies gebruiken.

Maar zover ik weet gebruik ik die niet :?

Dus ik kan voor jou ook geen phpinfo(); informatie posten.

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 17 november 2002 @ 13:32:
ik upload FTD60.JPG

Error:

Je mag alleen .jpg of .gif plaatjes uploaden!

Het is ook nog ..

Bij Coolfreepages mag ik:

Geen PHPinfo() opvragen
Geen socket functies gebruiken
Geen mail functies gebruiken.

Maar zover ik weet gebruik ik die niet :?

Dus ik kan voor jou ook geen phpinfo(); informatie posten.
Hmm, dan is er iets mis met de php config...want hij krijgt geen type door, dus gaat ie naar default.
Misschien moet je ff mailen naar server admin?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
staat ook bij de faq

Vragen over programmeren enz. Worden genegeerd :(

Misschien moet ik anders maar een andere host zoeken.
Maar waar vind je een gratis host die php ondersteund en file upload (Die bestaan bijna niet)

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 17 November 2002 @ 13:36:
staat ook bij de faq

Vragen over programmeren enz. Worden genegeerd :(

Misschien moet ik anders maar een andere host zoeken.
Maar waar vind je een gratis host die php ondersteund en file upload (Die bestaan bijna niet)
Eigen server opzetten? :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik heb apache al draaien voor testen..

maar aangezien hier 6 mensen zitten die inet willen gebruiken en me ouders geen pc 24 uur aan willen .. Kan ik dat dus wel vergeten jammergenoeg :(

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 17 November 2002 @ 13:36:
staat ook bij de faq

Vragen over programmeren enz. Worden genegeerd :(

Misschien moet ik anders maar een andere host zoeken.
Maar waar vind je een gratis host die php ondersteund en file upload (Die bestaan bijna niet)
Probeer deze eens.
http://62.251.91.165/barthsite/new/frames/ -> Hosting

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
thnx man :D
Ik kijk het even na


Als ik plaats heb voor de site dan zet ik link er even bij :D

Acties:
  • 0 Henk 'm!

Verwijderd

<input type="hidden" name="MAX_FILE_SIZE" value="1024000">

Acties:
  • 0 Henk 'm!

Verwijderd

Je kunt fileUpload beter via FTP laten verlopen. Dat bespaart je een hoop problemen. Zie mijn posts over het probleem.

Acties:
  • 0 Henk 'm!

  • Willem2
  • Registratie: Oktober 2000
  • Laatst online: 20-09 06:39

Willem2

Ω is futile

phpversion()

probeer die maar s...

niet elke host heeft FTP gecompiled voor PHP trouwens...

en nee, ik houd niet van voetbal... :)


Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb precies hetzelfde probleem. Alleen gaat het bij mij bij grote bestanden fout. Ik verlies de tmpname bij de upload. Gewone naam en mime-type heb ik nog wel.

Max upload size in php.ini is ook ruim voldoende. Timeout van script is ook lekker hoog. Vaag dus. Ik denk aan een bug in IE. Ik had laatst namelijk ook al zoiets bij forms submitten bij een SSL verbinding.

Bleek dit te zijn:
http://www.microsoft.com/...53-48A7-8526-BD38215C74B2

Edit:
hmm, topic is een beetje gedateerd zie ik net. :) Sorry.

[ Voor 7% gewijzigd door Verwijderd op 08-06-2004 09:18 ]


Acties:
  • 0 Henk 'm!

  • Oceria
  • Registratie: Juli 2001
  • Laatst online: 19-09 11:44

Oceria

I've been in between....

Dit is wat je nodig hebt:
code:
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
<?php
// set up basic connection
$conn_id = ftp_connect($ftp_server); 

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

// check connection
if ((!$conn_id) || (!$login_result)) { 
       echo "FTP connection has failed!";
       echo "Attempted to connect to $ftp_server for user $ftp_user_name"; 
       exit; 
   } else {
       echo "Connected to $ftp_server, for user $ftp_user_name";
   }

// upload the file
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); 

// check upload status
if (!$upload) { 
       echo "FTP upload has failed!";
   } else {
       echo "Uploaded $source_file to $ftp_server as $destination_file";
   }

// close the FTP stream 
ftp_close($conn_id); 
?>
Deze info heb ik van php.net gehaald.
En om gegevens via de url door te geven kun je naast de post methode ook de GET methode gebruiken.
Creëer een link die hierop lijkt:
../index2.php?&var1=1&var2=2
en haal die info uit de url met behulp van get:
code:
1
2
3
4
5
6
7
8
<?php
// Get info from the url
$var_1 = $_GET["var1"];
$var_2 = $_GET["var2"];
//debug code (can be removed when functioning propperly)
echo " Retrieved $var_1 and $var_2 from the url<br />";
// end of debug code
?>

Succes!

[ Voor 6% gewijzigd door Oceria op 08-06-2004 09:32 ]

Oceria doesn't know where this repeatbutton -repeatbutton is...


Acties:
  • 0 Henk 'm!

Verwijderd

Nee, ik wil geen GET en ook geen FTP gebruiken, das lelijk. Ik wil gewoon dat het met POST werkt. Zo moeilijk kan dat toch niet zijn. Bij kleine bestanden gaat het goed.

Bij bestanden groter dan 1,5 MB schat ik gaat het fout.
dan krijg ik alleen dit nog maar in mijn $_FILE:

Array ( [bestand] => Array ( [name] => mcl.pdf [type] => application/pdf [tmp_name] => none [size] => 0 ) )

Zwaar vaag.

Acties:
  • 0 Henk 'm!

Verwijderd

Dit script werkt op een beveiligde server.
Ik zal nu vast iets dubbels posten, maar voorruit :P

Ow, ik moest op die server eerst een paar instellingen voor de upload directorie laten instellen zodat ik idd ook mocht uploaden, dus zo goed werkt het script misschien niet op een beveiligde server :S Kun je daarom de uitdraai van phpinfo() hier laten zien?? Hier staat in of je mag uploaden...

code:
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
<HTML>
<HEAD>
    <TITLE>Select Image</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<?
$img_dir = "/data/images/";

if ( ( $formaction == "UploadNow" )   &&
     ( $img_file    != "none" )       )
{
    if ( $_FILES["img_file"]["name"] == "" )
    {
        echo 'geen bestandsnaam gevonden';
    }
    else
    {
        $upl_dir  = $img_dir;
        $img_name = 'test'
                  . substr( $_FILES["img_file"]["name"] , -4 );
    
        //*
        //*    Copy temp file to permanent destination
        //*
        if ( copy( $img_file , $upl_dir . $img_name ) )
        {
            echo 'upload succesvol';
        }
        else
        {
            echo 'helaas...';
        }
    }
}
?>
<FORM NAME="frmUpload" METHOD="post" ENCTYPE="multipart/form-data">
    <INPUT TYPE="hidden" NAME="formaction" VALUE="UploadNow">
    <INPUT TYPE="file"   NAME="img_file">
</FORM>
</BODY>
</HTML>


offtopic:
dit stukje code is pre templates, voor de mensen die mijn voorkeur kennen :P

[ Voor 48% gewijzigd door Verwijderd op 08-06-2004 22:42 . Reden: ik zie nu pas dat deze thread 4 weken oud of ouder is :S ]

Pagina: 1