Avatar billede gormgorm Nybegynder
15. maj 2005 - 18:16 Der er 11 kommentarer og
1 løsning

problemer med upload-formular

Jeg har lavet en side upload.php til at uploade billeder til mappen 'billeder' (med skriverettigheder). Den kan egentlig godt uploade filerne til mappen og gemme dem i sql-databasen, men billederne er af en eller anden grund beskyttede, så de ikke kan ses efterfølgende på websiderne. Hvis jeg i stedet overfører billederne fha. FTP virker det fint. Hvordan kan jeg få upload-filen til at virke optimal?

Uploadformularen kommer desuden med flg. fejlmeddelelse:

Warning: copy(): Unable to access in /customers/mortensorensen.com/mortensorensen.com/httpd.www/admin/upload.php on line 69

Her er lidt php kode fra upload.php:

<?php

if (isset($_FILES['filnavn']))  {
    print "Fil, der er blevet overført: {$_FILES['filnavn']['name']}<p>\n";
       
$query = "INSERT INTO billeder SET billednavn='".$_FILES['filnavn']['name']."'";

    $Result1 = mysql_query($query, $cms) or die(mysql_error());
}

{
$tempfile = $_FILES['filnavn']['tmp_name'];
$destination = "../billeder/{$_FILES['filnavn']['name']} ";
copy($tempfile, $destination);

}

?>
Avatar billede coderdk Praktikant
15. maj 2005 - 19:57 #1
Du skal ikke bruge copy() du skal bruge move_uploaded_file() og is_uploaded_file()
Avatar billede gormgorm Nybegynder
15. maj 2005 - 20:13 #2
Sådan her:?

move_uploaded_file($tempfile, $destination);
is_uploaded_file($tempfile, $destination);
Avatar billede coderdk Praktikant
15. maj 2005 - 20:19 #3
Yep:

if ( is_uploaded_file( $_FILES['filnavn']['tmp_name'] ) )
{
  move_uploaded_file( $_FILES['filnavn']['tmp_name'], '../billeder/' . {$_FILES['filnavn']['name'];
}
Avatar billede gormgorm Nybegynder
15. maj 2005 - 20:41 #4
tak, der kommer ikke længere fejlmeddelelse i upload-formularen, og filen bliver også uploadet til mappen 'billeder', men kan stadig ikke vises på brugersiderne. Fx.
http://www.mortensorensen.com/index.php?id=1&mainid=1
Avatar billede coderdk Praktikant
15. maj 2005 - 20:45 #5
Hvor er brugersiderne? Hvor er det meningen de skal vises, og hvad er fejlen?
Avatar billede coderdk Praktikant
15. maj 2005 - 20:46 #6
Jeg får 404 file not found på billedet :P
Avatar billede gormgorm Nybegynder
15. maj 2005 - 20:49 #7
ovenstående er brugerside, mens administrationssiderne ligger på mortensorensen.com/admin

Læg mærke til den ikke vil vise billedet, men under 'Topmenu 2' vil den gerne, da dette billede er overført ved ftp
Avatar billede coderdk Praktikant
15. maj 2005 - 21:11 #8
Det ser jo ud som om at eee.gif ikke findes?!
Avatar billede gormgorm Nybegynder
15. maj 2005 - 21:18 #9
eee.gif ligger som den skal:

http://www.mortensorensen.com/billeder/eee.gif

Så jeg ved sku ikke hvad det kan skyldes.
Men tak for hjælpen og point til dig
Avatar billede coderdk Praktikant
15. maj 2005 - 21:27 #10
Prøv lige at lave en pic.php:

<?php

  $fil = basename( $_GET['name'] );
  $ext = strtolower( end( explode( '.',  $fil ) ) );

  $mime = array( 'gif' => 'image/gif', 'jpg' => 'image/jpeg', 'png' => 'image/png' );

  header( 'Content-Type: ' . $mime[$ext] );

  readfile( 'billeder/' . $fil );

?>

Så kan du kalde dine billeder med:

pic.php?name=eee.gif

Måske er det noget rettighedsnoget?
Avatar billede gormgorm Nybegynder
15. maj 2005 - 22:15 #11
ja jeg tror det er noget med rettigheder at gøre.

Jeg har dog givet alle rettigheder til mappen billeder og filerne i mappen. Måske skal jeg bruge kommandoen 'chmod'...(777) i php?
Avatar billede gormgorm Nybegynder
17. maj 2005 - 14:41 #12
Har fundet fejlen, den genererede et mellemrum i de filer jeg uploadede.
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