php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.10.2005, 08:43  
Gast
 
Beiträge: n/a
Standard Bilder hochladen

Hallo zusammen!

Ich habe ein Script, in dem man Bilder hochladen kann.
Wenn man nun auf den Button "Durchsuchen..." klickt, dann kann man das Bild wählen, das man hochladen möchte.

Jetzt möchte ich, dass, sobald man auf "hochladen" klickt, das Bild hochgeladen und in den Ordner images hinterlegt wird. Der Ordner ist im selben Verzeichnis wie das Script zum Hochladen.

Ich hab mal folgendes versucht:
Code:
<form name="FORMULAR" action="bilder.php?upload=ja&id=<?=$id?>" method="post" target="_self" enctype="multipart/form-data">
.
.
.
<input type="file" name="BILD1" size="20" />
.
.
.
<input type="submit" value="hochladen"/>
PHP-Code:
<?
if(isset($_FILES['BILD1']) and ! $_FILES['BILD1']['error'])
{
    
move_uploaded_file($_FILES['BILD1']['tmp_name'], "./images");
    
printf("Die Datei %s steht jetzt zur Verfügung.
\n"
$_FILES['BILD1']['name']);
    
printf("Sie ist %u Bytes groß und vom Typ %s.
\n"
$_FILES['BILD1']['size'], $_FILES['BILD1']['type']);
}
?>
Leider kommen aber folgende Fehlermeldungen:
Warning: move_uploaded_file(./images): failed to open stream: Permission denied in C:\apachefriends\xampp\htdocs\www\home\PROGRAMM\bi lder.php on line 23
und
Warning: move_uploaded_file(): Unable to move 'C:\DOKUME~1\martin\LOKALE~1\Temp\phpEDE.tmp' to './images' in C:\apachefriends\xampp\htdocs\www\home\PROGRAMM\bi lder.php on line 23

Kann mir hier jemand weiterhelfen?

Danke im Vorraus für jede Antwort!
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.10.2005, 08:54  
Erfahrener Benutzer
 
Registriert seit: 30.08.2005
Beiträge: 179
havok
havok eine Nachricht über ICQ schicken
Standard

probiers mal mit ../images.
So wie sich das liest hast du in dem Ordner keine Schreibrechte, aber wenn du WIndows hast kann das fast nicht sein, oder er findet den Ordner so nicht wie du ihn angegeben hast, also mal ein bißchen damit rumspielen.

Gruß HaVoK
havok ist offline  
Alt 07.10.2005, 09:13  
Gast
 
Beiträge: n/a
Standard

1. DANKE !!!

Bei ../images ist die Fehlermeldung weg!

2. Die Datei ist aber nicht in dem Ordner drin

Ich hab das Laufwerk nach der Datei durchsucht, und hab das hier gefunden:
Hier ist eine Verknüpfung erschienen
C:\Dokumente und Einstellungen\martin\Recent

Frage 1: Warum ist die Datei hier und nicht in Images?
Frage 2: Warum ist hier nur eine Verknüpfung?
 
Alt 07.10.2005, 09:32  
Gast
 
Beiträge: n/a
Standard

Man sollte den Dateinamen mit angeben ...
 
Alt 07.10.2005, 09:34  
XLB
Erfahrener Benutzer
 
Registriert seit: 31.07.2005
Beiträge: 1.126
PHP-Kenntnisse:
Fortgeschritten
XLB
Standard

Hast du dir die Bilder vorher mal mit'nem Bildbetrachter angesehen? Im "Recent"-Verzeichnis befinden sich Links zu "kürzlich" (-> recent) verwendeten Dateien. Klick mal unten links auf "Start", dann auf Dokumente (vorausgesetzt du hast dies aktiviert). In der dortigen Liste sollte das Bild auch zu finden sein. Hat aber (eigentlich) nix mit deinem PHP-Skript zu tun, sondern damit, das du vorher "irgendwas" damit gemacht hast.

Welchen Wert gibt "move_uploaded_file()" denn zurück (false?) ? Hast du das mal geprüft ? ( Beispiel )
XLB ist offline  
Alt 07.10.2005, 09:43  
Gast
 
Beiträge: n/a
Standard

Man oh man, und wieder wird das PHP-Handbuch nicht benutzt
Vieleicht sollte man die 2. Fehlermeldung nochmal mit Schriftgrösse 30 schreiben.
 
Alt 07.10.2005, 10:19  
Gast
 
Beiträge: n/a
Standard

"move_uploaded_file()" gibt true zurück.

AHA! Ich hab nicht den Name, sondern den Pfad als Dateinamen angegeben, sitmmts?

Jetzt müsste ich dann also nur noch den Pfad mit dem Dateinamen austauschen, stimmts?

Aber wie?
 
Alt 07.10.2005, 10:32  
XLB
Erfahrener Benutzer
 
Registriert seit: 31.07.2005
Beiträge: 1.126
PHP-Kenntnisse:
Fortgeschritten
XLB
Standard

Uuuups ... - Wie war das noch? Wer lesen kann, ist klar im Vorteil ... ?!

PHP-Code:
<?php

   move_uploaded_file
($_FILES['BILD1']['tmp_name'], "./images");

?>
Das fehlt was hinter dem "./images/". Nicht austauschen, sondern hinzufügen ...

Zitat:
Man sollte den Dateinamen mit angeben ...
XLB ist offline  
Alt 07.10.2005, 10:46  
Gast
 
Beiträge: n/a
Standard

AHA!

Jetzt funktioniert's!
PHP-Code:
<?
if(isset($_FILES['BILD1']) and ! $_FILES['BILD1']['error'])
{
    if(
move_uploaded_file($_FILES['BILD1']['tmp_name'], "./images/".$_FILES['BILD1']['name']))
    {
        
printf("Die Datei %s steht jetzt zur Verfügung.
\n"
$_FILES['BILD1']['name']);
        
printf("Sie ist %u Bytes groß und vom Typ %s.
\n"
$_FILES['BILD1']['size'], $_FILES['BILD1']['type']);
    }
}
?>
Ich hab eine if-Abfrage gemacht, damit das auch wirklich nur ausgegeben wird, wenn der upload erfolgreich war.

2 Fragen hätte ich aber da noch:
1. Wie kann ich begrenzen wie groß die Datei ist?
2. Wie kann ich den Dateityp begrenzen (also auf gif, jpg, png)?
 
Alt 07.10.2005, 10:50  
Erfahrener Benutzer
 
Registriert seit: 23.02.2005
Beiträge: 211
TheIfrit
Standard

PHP-Code:
<?php
$tempname 
$_FILES['bildurl']['tmp_name'];
$name $_FILES['bildurl']['name'];
$type $_FILES['bildurl']['type'];
$size $_FILES['bildurl']['size'];

print_r($_REQUEST);
echo 
'
bla '
.$name.' '.$type.' '.$size.' bla
'
;

/* Mit diesen beiden if-Abfragen */
if($type != "image/gif" && $type != "image/pjpeg" && $type != "image/jpeg")
{
    
$err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
}
if(
$size "150000")
{
    
$err[] = "Die Datei welche du hochladen willst, ist zu gross!
Maximale Dateigrosse beträgt 150 KB!"
;
}
if(empty(
$err))
{
    
copy("$tempname""gfx/$name");
    echo 
"Die Datei $name wurde erfolgreich hochgeladen!";
}
else
{
    foreach(
$err as $error)
    echo 
"$error
"
;
}

?>
__________________
Wie lautet die adäquate Antwort auf "ihr benehmt euch wie kleine Kinder!" ?

"Er hat Angefangen!"
TheIfrit ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bilder ohne DB sicher speichern Diet PHP Tipps 2005 6 25.03.2009 00:07
Bilder hochladen und speicher Zabimaru PHP Tipps 2008 7 09.04.2008 17:58
bilder zu groß?! lindner PHP Tipps 2006 9 19.10.2006 08:32
Bilder Ordner hochladen? CHRIS PHP Tipps 2005-2 3 30.12.2005 17:20
Bilder löschen PHP Tipps 2005-2 4 24.10.2005 11:37
Bilder aus einem unterverzeichis anzeigen.Hilfe PHP Tipps 2005-2 3 12.09.2005 15:36
Mehrere Bilder Hochladen und bearbeiten PHP Tipps 2005-2 7 23.07.2005 13:48
Bilder hochladen und Namen in DB speichern PHP Tipps 2005-2 3 21.06.2005 16:11
Bilder in Tabellen nixdorf HTML, Usability und Barrierefreiheit 36 09.05.2005 21:15
Bilder hochladen über Formular PHP Tipps 2005 3 11.04.2005 13:46
[Erledigt] mehrere Bilder auf einmal hochladen PHP Tipps 2005 3 31.03.2005 11:36
Bilder hochladen PHP Tipps 2005 1 14.02.2005 16:16
Bilder aus der Datenbank Skazi Datenbanken 2 09.02.2005 13:42
Suche Bilder hochladen Script ypsie Beitragsarchiv 5 21.01.2005 17:01
Bilder hochladen mit/ohne Datenbank 'progman' PHP Tipps 2004 9 19.10.2004 21:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
bild hochladen in php, bilder hochladen php, http://www.php.de/php-tipps-2005-2/32022-bilder-hochladen.html, php dateien hochladen, html php bild hochladen, bild upload php, bild mit php hochladen, php bilder auf website hochladen, fotos hochladen html php, $_files speichern mit xampp, bilder zu groß zum hochladen php

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:52 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.