Avatar billede ej147 Nybegynder
04. januar 2015 - 18:33 Der er 6 kommentarer og
1 løsning

Upload af fil volder problemer og andet?

Nu håber jeg en af jer eksperter kan hjælpe mig med følgende 2 problemer:
1.
Da jeg manglede et script til upload af en enkelt fil til min hjemmeside, var jeg så heldig at finde dette script her på siden:

http://www.eksperten.dk/guide/1098

Problemet er desværre bare det, at jeg får en fejlmeddelelse, når jeg trykker på knappen "Upload file".
Fejlen er:
No file selected.

Dette er selvfølgelig ikke korrekt, da jeg uden problemer får lov til at finde frem til den fil, jeg vil uploade, da det vises på skærmen.
Jeg har ændret ganske få steder i scriptet, da jeg kun ønsker at kunne uploade en type fil med navnet gedcom.ged.
Ellers burde scriptet være uden anden rettelse, så nu håber jeg en af jer, kan fortælle mig, hvad jeg gør galt her - please.

Scriptet er her:

<?php
$uploadDir = 'upload/'; //Bibliotek hvor filer uploades til - husk chmod 777
$allowedFileTypes = array('ged'); //Hvilke filer vil vi acceptere bliver uploadet?

//Er der trykket på Upload file knappen?
if(isset($_POST['myUpload']))
{
  //Har vi en fil?
  if(is_uploaded_file($_FILES['gedcom']['tmp_name']))
  {
    //Filendelse
    $extension = strtolower(pathinfo($_FILES['gedcom']['name'],PATHINFO_EXTENSION));
   
    //Er filen en af de filer vi gerne vil have?
    if(in_array($extension,$allowedFileTypes))
    {
      //Vi flytter filen fra tmp til vores UPLOADDIR
      if(move_uploaded_file($_FILES['gedcom']['tmp_name'],$uploadDir . basename($_FILES['gedcom']['name'])))
      {
        echo '<h3 style="color:green;">File ('.basename($_FILES['gedcom']['name']).') uploaded succesfully</h3>';
      }
      else
      {
        echo '<h3 style="color:red;">Error - unable to upload file: '.basename($_FILES['gedcom']['name']).'</h3>';
      }
    }
    else
    {
      echo '<h3 style="color:red;">Wrong filetype, allowed filetypes are: ('.implode(',',$allowedFileTypes).')</h3>';
    }
  }
  else
  {
    echo '<h3 style="color:red;">No file selected<h3>';
  }
}

//Vores form
echo '<form action="upload.php" method="post" enctype="multipart/form-data">';
echo 'File ('.implode(',',$allowedFileTypes).'): <input type="file" name="gedcom"><br />';
echo '<input type="submit" name="myUpload" value="Upload file">';
echo '</form>';

?>

2.
Kan dette script evt. rettes til så den fil, der bliver uploaded, efter at have været brugt, ganske automatisk bliver slettet?
Her er måske en bedre forklaring:
Jeg ønsker at uploade en gedcom.ged fil(den indeholder data der skal læses ind i MySql). Efter uploadning af filen skal den eksekveres via et script, jeg har liggende til formålet, hvorefter disse data automatisk bliver læst ind i MySql og kan bruges. Og efter dette skal samme gedcom.ged fil slettes.

Er det her muligt og er der monstro en af jer, der kan hjælpe med dette?
Avatar billede olsensweb.dk Ekspert
05. januar 2015 - 00:36 #1
1)
har lige prøvet din code!!, den oploader fint den *.ged fil jeg vælger
har du lavet folderen upload, der hvor upload.php afvikles fra ??


2)
kig på http://php.net/unlink
Avatar billede ej147 Nybegynder
05. januar 2015 - 03:55 #2
ronols:
1. Det glæder mig på dine vegne, at det virker :-) hvorefter jeg tænker hvad i himlens navn gør jeg så galt her ???
Jeg læser det script lige ud af landevejen og du siger jo at den kode jeg har rettet til virker ???

Scriptet ligger i en folder med navnet upload, hvorfra det eksekveres, men jeg får stadig den fejlkode.
Det kan vel ikke være fordi scriptet først bliver kørt efter et login-script?
Eller kan problemet være at upload folderen ikke ligger i roden, men under en anden folder?
Selvom jeg har prøvet at flytte den ud i roden og nej, samme fejl. 

2. Den manglede jeg, tak for det.
Avatar billede ej147 Nybegynder
05. januar 2015 - 04:25 #3
Filstørrelsen på gedcom kan spille ind her, kan jeg se efter at have lavet en mindre gedcom fil. Den nye gedcom fil er på 152 kb og ser ud til at delvis blive eksekveret.

Men jeg får en ny fejlkode der er:

Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\php35ED.tmp' to 'upload/gedcom.ged' in C:\xampp\htdocs\fullerton-13\upload\upload.php on line 18
Error - unable to upload file: gedcom.ged
Avatar billede michael_stim Ekspert
05. januar 2015 - 08:30 #4
$uploadDir = 'upload/'; //Bibliotek hvor filer uploades til - husk chmod 777

Har du husket at sætte rettigheder på mappen?
Avatar billede ej147 Nybegynder
05. januar 2015 - 08:54 #5
michael_stim:
Efter at have grublet over det natten igennem, har jeg lavet en mindre gedcom fil (den gamle var over 2mb) og lavet en test her til formiddag, så nu kan jeg se, at det er filstørrelsen, der har skabt problemer.
Har nu rettet i min php.ini, så det problem er løst (filoverførsel virker perfekt), men tak for din respons.

Venlig hilsen Erik
Avatar billede ej147 Nybegynder
06. januar 2015 - 08:15 #6
ronols:
Lægger du et svar så tråden kan blive lukket?
Avatar billede olsensweb.dk Ekspert
06. januar 2015 - 12:41 #7
svar
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