Avatar billede noodrem Nybegynder
02. maj 2006 - 19:48 Der er 8 kommentarer

Problemer med upload af fil

Jeg har i følgende kode det problem at jeg modtager den fejl meddelse der er nederst på siden, og mine filer og tekst derved ikke uploades:

<?
$upfil = $_REQUEST['upfil'];
$submit = $_REQUEST['submit'];
$bilmaerke = $_REQUEST['bilmærke'];
$aargang = $_REQUEST['aargang'];

if(!isset($_SESSION['admin'])) {
    include("admincheck.php");
} elseif(!isset($submit)) {
    echo "Intet at tilføje! - FEJL";
} else {
    $konfiguration['upload_bibliotek'] = "./updir";
       
    /* Check PHP-version */
    list($major, $minor, $rev) = explode(".", phpversion());
    if($major < 4) {
        die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
    }

    /* Skab de "moderne" arrays hvis vi arbejder med en aeldre PHP */
    if($minor < 1) {
        $_FILES = $HTTP_POST_FILES;
        $_POST = $HTTP_POST_VARS;
        $_SERVER = $HTTP_SERVER_VARS;
    }
   
    /* Hvor flytter vi fra og til */
   
    $id = microtime();
    $fra = $_FILES["upfil"]["tmp_name"];
    $til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"] . "/" . $id;

   
    /* Saa koerer vi */
    if(function_exists("move_uploaded_file")) {
        move_uploaded_file($fra, $til);
    } else {
        copy($fra, $til);
    }
   
    $filnavn = $til;
           
    mysql_connect("XXX", "XXX", "XXX");
    mysql_select_db("XXX");
       
    $query_insert = mysql_query("INSERT INTO biler (id, dato, maerke, aargang, filnavn) VALUES ('$id', NOW(), '$bilmaerke', '$aargang', '$filnavn
    )")
    or die(mysql_error());
    header("location:index.php?side=biler");
}

?>



Følgende fil lægger i en mappe der hedder Biler og mappen updir lægger i mappen Biler.

Mit problem er at jeg modtager følgende fejl meddelselse i min browser når jeg prøver at køre scriptet igennem.


Warning: move_uploaded_file(./updir/badminton_odde2.jpg/0.80565300 1146591885) [function.move-uploaded-file]: failed to open stream: No such file or directory in /usr/home/web/XXXXX/Biler/opretbil.php on line 36

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/var/tmp/phpcVTFKc' to './updir/badminton_odde2.jpg/0.80565300 1146591885' in /usr/home/web/XXXXXXX/Biler/opretbil.php on line 36
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''./updir/badminton_odde2.jpg/0.80565300 1146591885 )' at line 1
Avatar billede codebase Praktikant
02. maj 2006 - 21:02 #1
det gir ingen meningen at forsøge at gemme dine filer i en mappe der har samme navn som filens navn.

$til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"] . "/" . $id;


skulle nok hedde noget ala
$til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];
Avatar billede noodrem Nybegynder
02. maj 2006 - 22:36 #2
Det gør jo så¨dan at jeg kan bruge billedet i et array sammen med det andet tekst der er indtastet.
Avatar billede codebase Praktikant
03. maj 2006 - 00:26 #3
Unable to move '/var/tmp/phpcVTFKc' to './updir/badminton_odde2.jpg/0.80565300 1146591885'

mappen findes jo ikke ?..
Avatar billede noodrem Nybegynder
03. maj 2006 - 18:12 #4
Det jeg gerne vil have den til er at lægge filen over i upfil mappen, og samtidig kalde filen $id til sidst, så jeg senere kan bruge den.

Hvilke ændringer bør jeg da foretage i koden?
Avatar billede codebase Praktikant
04. maj 2006 - 00:06 #5
hvis du vil gemme det gamle navn, så opret en kollone i tabellen og kald den orgName.

$query_insert = mysql_query("INSERT INTO biler (id, dato, maerke, aargang, filnavn,orgNavn) VALUES ('$id', NOW(), '$bilmaerke', '$aargang', '$filnavn'," . $_FILES["upfil"]["name"] ." )");

$til = $konfiguration["upload_bibliotek"] . "/" . $id;

måske endda så den beholder filtypen (.jpg)
$til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"] . "/" . $id . substr(strlen($_FILES["upfil"]["name"])-4);

der er mange måder at gøre det på, du må næsten selv vide hvordan det bedst passer ind i dit system
Avatar billede noodrem Nybegynder
04. maj 2006 - 15:01 #6
Kan ummidelbart ikke få det til at virke.

For lige at fjerne alt forvirring, er det jeg ønsker at smide den uploadede fil hen i mappen; upfil.
Den pågældende fil skal derefter have filens navn og et bestemt id til sidst, så jeg senere kan bruge filen, i sammenhæng med det skrevne tekst.

Hvilke ændringer skal laves for at dette er muligt?
Avatar billede codebase Praktikant
04. maj 2006 - 15:14 #7
$til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"] . $id;
Avatar billede noodrem Nybegynder
04. maj 2006 - 17:11 #8
Takker codebase :)

Er dog stødt ind i endnu en problem. Fejl meddelsen jeg modtager er nu:

Warning: move_uploaded_file(./updir/forsidelink.jpg0.99797700 1146755434) [function.move-uploaded-file]: failed to open stream: Permission denied in /usr/home/web/sth115946/Biler/opretbil.php on line 36

Altså ser det ud til at den ikke har adgang til at uploade, er det noget man skal snakke med udbyderen om, eller kan det ændres ved hjælp af et script?
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