Avatar billede challenge Praktikant
31. januar 2006 - 16:16 Der er 17 kommentarer og
3 løsninger

Upload script fremgangsmåde

Hej eksperter.

Jeg har søgt dette emne, men det ser ud tal at alle bare vil have færdige scripts - Hvilket jeg ikke vil :)

I forbindelse med mit brugersystem, skal jeg have lavet et upload script.

Jeg er rimelig på bare bund, så hvis nogen kunne komme med et par hints ville det være perfekt! (så som hvilke funktioner jeg skal bruge - Så kan jeg selv slå dem op i manualen :) )

Jeg kunne umidlbart forestille mig noget i den her stil - men det er sikkert mere kompliceret end som så...:

<?
if (isset($_POST["fil"])) {
$dir = "/upload/"
upload_funktion($_FILES['fil'], $dir));
} else {
?>
<form method="POST" action="<? echo $php_self; ?>" enctype="multipart/form-data">
<input type="file" name="userfile"><br>
<input type="submit" value="Upload...">
</form>
<?
}
?>

Men jeg er som sagt på bar bund...

Bare sig til hvis i vil have flere informationer fra min side...!

mvh.
Avatar billede gizmo-gizmo Nybegynder
31. januar 2006 - 16:23 #1
Prøv med:

$dir = "/upload/" . $_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $dir))
{
  echo "Filen blev uploadet";
}
else
{
  echo "idiot";
}

Svært er det heldigvis ikke :-)
Avatar billede challenge Praktikant
31. januar 2006 - 17:07 #2
Desværre virker ikke...

<?
if (isset($_POST["userfile"])) {
$dir = "/upload/" . $_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $dir))
{
  echo "Filen blev uploadet";
}
else
{
  echo "idiot";
}
} else {
?>
<form method="POST" action="<? echo $php_self; ?>" enctype="multipart/form-data">
<input type="file" name="userfile"><br>
<input type="submit" value="Upload...">
</form>
<?
}
?>

kan det have noget at gøre med min $php_self? Skal det være noget andet?

Ellers tak for svaret!
Avatar billede challenge Praktikant
31. januar 2006 - 17:08 #3
den refresher bare...
Avatar billede gizmo-gizmo Nybegynder
31. januar 2006 - 17:09 #4
Ja, prøv med. action="<?=$_SERVER['PHP_SELF']?>"

eller bare skrive action="?"  det burde også være tilstrækkeligt
Avatar billede challenge Praktikant
31. januar 2006 - 17:11 #5
Desværre - Stadig det samme...
Avatar billede gizmo-gizmo Nybegynder
31. januar 2006 - 17:19 #6
Puha, jeg kan ikke liiige se hvad der går galt. Prøv evt. at kigge i manualen for et helt (men stadig utrolig simpelt) eksempel:
http://dk.php.net/manual/en/features.file-upload.php
Avatar billede 17196 Nybegynder
31. januar 2006 - 17:22 #7
<form style="margin:0;" method="POST" action="<?=$_SERVER['PHP_SELF']?>" enctype="multipart/form-data">
          Tekst<br>
        <input name="beskrivelse" type="text" class="tekstarea" style="width:150px;" maxlength="40" /><br>
        Billede:<br>
        <input name="filnavn" type="file" class="tekstarea" style="width:150px;" /><br>
        <input type="Submit" name="Submit" value="Send" />
        <br>
          </form>
<?
if(isset($_POST['Submit']))
{
$mode = '0666';
$filedir = 'gfx/'; //STI TIL BILLED MAPPEN, HUS AT CHMOD MAPPEN
$userfile_name = $_FILES['filnavn']['name'];
$userfile_tmp = $_FILES['filnavn']['tmp_name'];

$prod_img = $filedir.$userfile_name;

move_uploaded_file($userfile_tmp, $prod_img);
chmod ($prod_img, octdec($mode));
echo "Succes";
}
?>
Avatar billede jakobdo Ekspert
31. januar 2006 - 17:24 #8
Dit problem er dette tjek:
if (isset($_POST["userfile"]))
Du har ikke $_POST['userfile']
Men du har:
$_FILE['userfile']
Avatar billede jakobdo Ekspert
31. januar 2006 - 17:24 #9
Og det skal være: $_FILES['userfile']
Avatar billede jakobdo Ekspert
31. januar 2006 - 17:30 #10
Og her er din kode udbygget til fulde:

<?
//http://www.eksperten.dk/spm/684287
if($_FILES['userfile']['size']>0)
{
    echo "<pre>";
    print_r($_FILES);
    echo "</pre>";
   
    $fra = $_FILES['userfile']['tmp_name'];
    $til = "./upload/" . $_FILES['userfile']['name'];
   
    echo "TIL: " . $til . "<br>";
    echo "FRA: " . $fra . "<br>";
   
    if(function_exists("move_uploaded_file"))
    {
      move_uploaded_file($fra, $til);
    }
    else
    {
      copy($fra, $til);
    }

    if(file_exists($til))
    {
      echo "Filen blev uploadet";
    }
    else
    {
      echo "Filen blev ikke uploadet";
    }
}
else
{
    ?>
    <form method="POST" action="<? echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
    <input type="file" name="userfile"><br>
    <input type="submit" value="Upload...">
    </form>
    <?
}
?>
Avatar billede challenge Praktikant
31. januar 2006 - 17:33 #11
Hey - Tak allesammen.

Jeg prøvede dig jakobdo, og det virkede - Men jeg fandt desværre ud af at det ikke kan udføre det da SAFE MODE er on...

Ellers tak for svaret allesammen!

Smider du lige et svar jakobdo?
Avatar billede challenge Praktikant
31. januar 2006 - 17:36 #12
hey jakob, så ikke lige din sidste kommentar.

Får flg. fejl:

Array
(
    [userfile] => Array
        (
            [name] => Checked flag Right.gif
            [type] => image/gif
            [tmp_name] => /tmp/phpwKRrnc
            [error] => 0
            [size] => 10861
        )

)

TIL: ./upload/Checked flag Right.gif
FRA: /tmp/phpwKRrnc

Warning: move_uploaded_file(./upload/Checked flag Right.gif): failed to open stream: Permission denied in /www/helgason.dk/brugersys/upload.php on line 17

Warning: move_uploaded_file(): Unable to move '/tmp/phpwKRrnc' to './upload/Checked flag Right.gif' in /www/helgason.dk/brugersys/upload.php on line 17
Filen blev ikke uploadet
Avatar billede challenge Praktikant
31. januar 2006 - 17:41 #13
Jeg har lige prøvet det på en anden server hvor det virkede - Så jeg må jo bare droppe min lortehost og finde en ny :)

Tak for hjælpen!

Smider du et svar jakob?
Avatar billede showsource Seniormester
01. februar 2006 - 00:34 #14
det er nu næppe host'en som er lort!

Når safe_mode er on, så skal du enten bruge et underdir,

$til = "upload/" . $_FILES['userfile']['name'];

eller definere den fulde sti på disken,

$til = $_SERVER["DOCUMENT_ROOT"] ."/upload/" . $_FILES['userfile']['name'];
Avatar billede challenge Praktikant
01. februar 2006 - 18:29 #15
hmm... Ja det virkede sku... Jeg takker da!
Svarar du så lige engang?
Avatar billede challenge Praktikant
02. februar 2006 - 18:12 #16
hola! Du gi mig svar, eh?
Avatar billede jakobdo Ekspert
03. februar 2006 - 18:34 #17
Svar!
Avatar billede jakobdo Ekspert
03. februar 2006 - 20:53 #18
Takker for point!
Avatar billede challenge Praktikant
03. februar 2006 - 23:48 #19
Jamen det var da lige hvad der manglede :)
De er jo ikke de første i denne uge ;)
Avatar billede jakobdo Ekspert
03. februar 2006 - 23:50 #20
:o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel