SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 15.07.2004, 14:35:31
lasso lasso ist offline
Anfänger
 
Registriert seit: Jun 2004
Beiträge: 42
Datei auf Server laden

Hallo

Ich will eine Datei von der Festplatte auf den Server laden können. Die bestehende Datei auf dem Server soll auf jeden Fall überschrieben werden und egal wie die hochgeladene Datei heisst, sie soll umbenannt werden in Zeitnehmer.xls. Der Ordner list hat chmod 777.
Ich habe folgendes Skript gemacht, das zwar scheinbar funktioniert, jedoch wird die vorhandene Datei nicht überschrieben...

PHP-Code:
<h2>Zeitnehmerliste hochladen</h2>
<?
if ($_REQUEST['submitted'])
{
$log = "";
    if ($dat_name == "") {
        $log = "keine Zeitnehmerliste gewählt<br>";
    } else {
    $dtnm = "Zeitnehmer.xls";
    @copy($dat,"../intern/list/$dtnm") or $log = "konnte Zeitnehmerliste nicht auf Server kopieren<br>";
        if (file_exists("../intern/list/$dtnm")) {
        $log = "Zeitnehmerliste ist aktualisiert<br>";
        }
    }
?>
<p>
<?
echo "$log";
?>
<a href="zeitadmin.php">zurück</a></p>
<? 
exit;
}
?>
<form method=POST action=zeitadmin.php enctype=multipart/form-data>
<input type=file name=dat size=30><br>
<input type="hidden" name="submitted" value="true">
<input type="submit" name="submit" value="hochladen"> 
</form>
Mit Zitat antworten
  #2  
Alt 15.07.2004, 15:00:08
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Re: Datei auf Server laden

Zitat:
Original geschrieben von lasso
PHP-Code:
<?
@copy($dat,"../intern/list/$dtnm") or $log = "konnte Zeitnehmerliste 
?>
1. Entferne das @ vor copy. Dann werden dir auch eventuelle Fehlermeldungen angezeigt.
2. Würde ich mit move_uploaded_file() statt copy() arbeiten.
3. Arbeite mit dem Array $_FILES.

Der Upload würde dann so aussehen:
PHP-Code:
move_uploaded_file($_FILES['tmp_name'], "../intern/list/" $dtnm); 
Zitat:
Original geschrieben von lasso

PHP-Code:
<?php
    
if (file_exists("../intern/list/$dtnm")) {
        
$log "Zeitnehmerliste ist aktualisiert<br>";
    }
?>
Diese Bedingung dürfte wohl immer TRUE sein, da die Datei auch vor dem Upload schon auf dem Server war. Somit wird die Variable $log hier überschrieben. Eine eventuell vorher erstellte Fehlermeldung, wird somit auch auf keinen Fall mehr angezeigt.

Mach das ganze doch mal folgendermaßen:
PHP-Code:
<?php
    
if($_REQUEST['submitted']) {
        if(empty(
$_FILES['dat'])) {
            
$log "Keine Zeitnehmerliste gewählt";
        } else {
            
$dtnm "Zeitnehmer.xls";
            if(
move_uploaded_file($_FILES['dat']['tmp_name'], "./../intern/list/" $dtnm)) {
                
$log "Zeitnehmerliste ist aktualisiert.";
            } else {
                
$log "Konnte Zeitnehmerlliste nicht auf Server kopieren!";
            }
        }
    }

    echo 
$log;
?>
Mit Zitat antworten
  #3  
Alt 15.07.2004, 18:39:42
lasso lasso ist offline
Anfänger
 
Registriert seit: Jun 2004
Beiträge: 42
Super, geht perfekt! Vielen Dank!

Gruss
Lasso
Mit Zitat antworten
  #4  
Alt 23.08.2004, 15:52:05
bweichel bweichel ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 196
Mein Upload funktioniert auch nicht. Habe schon mehrere Ratschläge ausprobiert. Woran kann das liegen?

Hier mein Script:

PHP-Code:
<form action="navigation_upload.php" method="post" enctype="multipart/form-data">

    
Einpflegen: <br>
    <
input type="file" name="file">
    <
br>
    <
br>
    <
input type="submit" value="Upload">

</
form
<br>
<br>
PHP-Code:
if(move_uploaded_file($_FILES['file'], $_FILES['file']['name'])) {
      print 
"Hat alles funktioniert!";

Das Teil geht nie in die Schleife...

Vielen Dank!

Gruß Björn
Mit Zitat antworten
  #5  
Alt 23.08.2004, 16:31:05
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Zitat:
Original geschrieben von bweichel
Mein Upload funktioniert auch nicht. Habe schon mehrere Ratschläge ausprobiert. Woran kann das liegen?

Hier mein Script:

PHP-Code:
<form action="navigation_upload.php" method="post" enctype="multipart/form-data">

    
Einpflegen: <br>
    <
input type="file" name="file">
    <
br>
    <
br>
    <
input type="submit" value="Upload">

</
form
<br>
<br>
PHP-Code:
if(move_uploaded_file($_FILES['file'], $_FILES['file']['name'])) {
      print 
"Hat alles funktioniert!";

Das Teil geht nie in die Schleife...

Vielen Dank!

Gruß Björn
- Zugriffsrechte existieren?
- $_FILES ist ein Array und nicht leer?
Mit Zitat antworten
  #6  
Alt 23.08.2004, 16:43:38
bweichel bweichel ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 196
Hallo,

ja, die Zugriffsrechte existieren.

$_FILES kommt von PHP.NET. Sollte dann wohl auch ein Array sein, oder?

Ich verwende halt copy anstatt move_uploaded_file. Habe es aber auch schon mit move_uploaded_file ausprobiert und es ging auch nicht.

Danke für deine Hilfe!

Gruß Björn
Mit Zitat antworten
  #7  
Alt 23.08.2004, 16:47:39
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Zitat:
Original geschrieben von bweichel

$_FILES kommt von PHP.NET.
Lass dir $_FILES einfach mal mit
PHP-Code:
<?php
    
echo "<pre>";
    
print_r($_FILES);
    echo 
"</pre>";
?>
anzeigen.
Mit Zitat antworten
  #8  
Alt 23.08.2004, 16:53:01
bweichel bweichel ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 196
Ja du hast recht... $_FILES[file] selbst ist leer! Aber warum? Wie bekomme ich die Datei auf den Server?

Das Ergebnis ist:

PHP-Code:
Array ( [file] => Array ( [name] => beispiel-navigation.txt [type] => text/plain [tmp_name] => /tmp/phpXpfA6d [error] => [size] => 308 ) ) 
Mit Zitat antworten
  #9  
Alt 23.08.2004, 17:05:51
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
PHP-Code:
<?php
    move_uploaded_file
($_FILES['file']['tmp_name'], $_FILES['file']['name']);
?>
Hatte was übersehen. So sollte es funktionieren. Als Source bei move_uploaded_file muss natürlich der temporäre Dateiname angegeben werden.

Geändert von xabbuh (23.08.2004 um 17:27:31 Uhr)
Mit Zitat antworten
  #10  
Alt 23.08.2004, 17:19:02
bweichel bweichel ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 196
Hallo Xabbuh,

leider geht das auch nicht. Ich habe es mit $_SERVER und $_FILES und move_uploaded_file und copy ausprobiert. Es ist zum k*****.

Es kommt aber auch keine Fehlermeldung, aber auch keine Datei...
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:20:03 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt