• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

move_uploaded_file()

Status
Für weitere Antworten geschlossen.

philipp

Neues Mitglied
Hallo

kurze frage:

kann php auch dateien überschreiben?
also wenn ich ein script haben will, mit dem man ein bild hochladen kann, das soll dann aber immer gleich heissen und das vorherige überschreiben.

ich hab da bisher so:

aber ich weiss, dass dann das kommt: File allready exists..

[php:1:fa58fb6b3b]<?php
if ($_FILES['cover']['tmp_name']) {
$movefile = move_uploaded_file($_FILES['cover']['tmp_name'], "../img/cover.jpg");
if ($movefile) {
echo '

Cover aktualisiert

<a onmouseover="this.style.cursor=\'hand\';" onclick="history.back()">zur&uuml;ck</a></p>';
} else {
echo '

Fehler beim hochladen der Datei

<a onmouseover="this.style.cursor=\'hand\';" onclick="history.back()">zur&uuml;ck</a></p>';
}
}
[/php:1:fa58fb6b3b]

(tabulaturen habe ich entfernt)
 
setz vor den upload doch einfach eine abfrage:
[php:1:9a46a1e96c]<?php
if(file_exists('./pfad/bild.ext'))
unlink('./pfad/bild.ext');
?>[/php:1:9a46a1e96c]

schon gibt es die datei nicht mehr...
 
:roll:

willst du wissen woher ich das jetzt wusste?

ich bin auf www.php.net gegangen, habe dort den link reference angeklickt und in der referenz die kategorie 'Funktionen des Dateisystems' gesucht. Dort fand ich dann alsbald denn eintrag delete (ziemlich eindeutig, ausserdem steht neben jeder funktion eine kurzbeschreibung). auf diesen eintrag habe ich dann geklickt und ihn mir durch gelesen. er war recht kurz und sagte mir das dies nur eine weiterleitung zu unlink ist.

so jetzt frage ich hier ob du das nicht slebst gekonnt hättest weil ich bezweifle das du am if scheiterst.

ICH und alle anderen HIER sind KEINE SUCHMASCHINEN. einmal nicht so faul sein bitte! es tut mir ja leid das es nun ausgerechnet dich trifft aber es passiert andauernd das leute hier posten und wir für sie suchen. könnt ihr das nicht sleber oder wollt ihr das nicht selber?
 
ich find meine eigenen probleme immer schlechter, als die von anderen.. kann das auch ned erklären. ich hab auch nicht an einen befehl zum löschen gedacht, sondern nur drann wie ich im move_uploaded_file nen parameter mitgebe zum überschreiben.

is schon ein langer tag gewesn heute, sorry.
 
move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5)
move_uploaded_file -- Verschiebt eine upgeloadete Datei an einen neuen Ort
Beschreibung
bool move_uploaded_file ( string filename, string destination )

Diese Funktion prüft, ob die mit filename bezeichnete Datei eine gültige Upload-Datei ist (d.h., dass sie mittels PHP's HTTP POST Upload-Mechanismus upgeloaded wurde). Ist die Datei gültig, wird sie zum in destination bezeichneten Dateinamen verschoben.

Wenn filename keine gültige Datei ist, wird keine Aktion ausgeführt, und move_uploaded_file() gibt FALSE zurück.

Wenn filename eine gültige Datei ist, jedoch aus irgendeinem Grund nicht verschoben werden kann, wird keine Aktion ausgeführt, und move_uploaded_file() gibt FALSE zurück. Zusätzlich wird eine Warnung ausgegeben.

Diese Prüfung ist speziell dort interessant, wo irgendeine Aktion mit upgeloadeten Dateien deren Inhalt dem User zugänglich machen könnte (oder auch anderen Usern auf dem selben System).

Anmerkung: Wenn Safe Mode aktiviert ist, überprüft PHP, ob die Dateien/Verzeichnisse die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst.

Anmerkung: move_uploaded_file() ist von den normalen Safe Mode UID-Einschränkungen nicht betroffen. Dies ist nicht unsicher, da move_uploaded_file() nur mit via PHP hochgeladenen Dateien arbeitet.

Warnung

Sollte die Zieldatei bereits existieren, wird sie überschrieben.


Siehe auch is_uploaded_file(), und das Kapitel Steuerung von Dateiuploads für ein einfaches Anwendungsbeispiel.
 
noch ne frage zu move_uploaded_file (hab nix gefunden auf der seite)

ich hab ein ganz normales upload-script, aber wenn ich da was uploade, kann ich die datei dann nicht ansehen. ich muss erst im ftp-programm unter eigenschaften die berechtigungen für die datei setzen.

liegt das an der serverconfig?

wie kann ich die berechtigungen mitsenden beim file-upload?

weiss das denn wer?
 
keine ahnun, ob du die mitsendenkannst, aber du kannst auf alle fälle nach dem erfolgreichen upload per chmod() (heist das bei ph auch so?is ja auch egal, du wirst es schon finden) die benötigten rechte finden.
 
liegt vermutlich an der umask ;)
(gibt auch nen gleichnamigen php befehl um sie zu ändern)
 
also noch eine frage:
wie kann ich die anzahl aller dateien aus einem ordner herausbekommen?
also

zuerst muss ich mal
$oeffnen = opendir("../img/artikelimg");
dann sicher was mit readdir
also
$anzahlbilder = readdir($oeffnen)
richtig bis hierhin?

aber ich will nur die anzahl herausbekommen.

edit: hab im netz was gefunden!

aber andere frage:
kann ich die funktion htmlentities auch anpassen?
dass nur ä, ö, ü, & umgewandelt werden?
 
is doch nich schwer...

str_replace auf php.net

[php:1:e8e488097a]<?php
function change($str)
{
$str = str_replace("ä","&auml;",$str);
$str = str_replace("Ä","&Auml;",$str);
$str = str_replace("ö","&ouml;",$str);
$str = str_replace("Ö","&Ouml;",$str);
$str = str_replace("ü","&uuml;",$str);
$str = str_replace("Ü","&Uuml;",$str);
$str = str_replace(" & "," &amp; ",$str);
}
?>[/php:1:e8e488097a]
 
danke
und wie bin ich die dann richtig ein :oops:
also so siehts im mom aus:
$artikel = nl2br($res['artikel_content']);

deinen code hab ich mal als change.inc.php gespeichert.
jetz muss ich den includen und dann?
 
nachdem du das file inkludiert hast, kannst du die funktion genauso wie alle andern funktionen aufrufen (:

bei nl2br() machst du das doch auch *g

[php:1:5010870dce]<?php
$artikel = change($res['artikel_content']);
$artikel = nl2br($artikel);
?>[/php:1:5010870dce]

oder

[php:1:5010870dce]<?php
$artikel = nl2br(change($res['artikel_content']));
?>[/php:1:5010870dce]

oder

[php:1:5010870dce]<?php
$artikel = change(nl2br($res['artikel_content']));
?>[/php:1:5010870dce]
 
PHP:
<?php

include 'change.inc.php';
$artikel = change(nl2br($res['artikel_content']));
	if ($res) {
	?>
	<h3 align="left">Ausgabe-Nr: <?php echo $res['artikel_ausgabe']; ?> (Jahr: <?php echo $res['artikel_jahr']; ?>)</h3>
	<p align="left" class="ahead"><?php echo $res['artikel_headline']; ?></p>
	<p class="artikel"><?php echo $artikel; ?></p>

?>
[php]

das is der teil... ich bekomme nichts(!) ausgegeben. also nichtmal ein leerzeichen(an der stelle wo der artikel sein sollte)
 
[php:1:c629588b3a]<?php
include 'change.inc.php';
#....
if ($res) {
?>
<h3 align="left">Ausgabe-Nr: <? echo $res['artikel_ausgabe']; ?> (Jahr: <?php echo $res['artikel_jahr']; ?>)</h3>
<p align="left" class="ahead"><? echo $res['artikel_headline']; ?></p>
<p class="artikel"><? echo change(nl2br($res['artikel_content'])); ?></p>
<? } ?>
[/php:1:c629588b3a]

so?
 
nein, geht nicht. mal das ganze?
PHP:
<?php
//Verbinden mit MySQL ...
include 'connect.inc.php';
//Artikel aus Datenbank holen ...
$sql = "SELECT `artikel_author`, `artikel_headline`, `artikel_content`, `artikel_ausgabe`, `artikel_jahr` FROM `artikel`
			WHERE `artikel_cat` = '1' ORDER BY `artikel_date` DESC LIMIT 1";
$res = mysql_fetch_array(@mysql_query($sql));
include 'change.inc.php'; 
if ($res) { 
?> 
<h3 align="left">Ausgabe-Nr: <? echo $res['artikel_ausgabe']; ?> (Jahr: <?php echo $res['artikel_jahr']; ?>)</h3> 
<p align="left" class="ahead"><? echo $res['artikel_headline']; ?></p> 
<p class="artikel"><? echo change(nl2br($res['artikel_content'])); ?></p> 
	<p align="right">Autor/in: [i]<?php echo $res['artikel_author']; ?></p>
	<?php
	} else {
	?>
	

Keine Artikel in dieser Kategorie verf&uuml;gbar</p>
	<?php
	}
?>
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben