| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

09-05-2009, 22:59
|
|
kasIQ
Registrierter Benutzer
|
|
Registriert seit: Mar 2005
Beiträge: 148
|
|
FieUpload Check
hallo
hab ein formular geschrieben, wo man ein file auf den server laden kann.
nun dacht ich mir, bau ich einen check ein, wo geprüft wird, ob es das file schon auf dem server gibt, und falls ja, kommt ein Javascript confirm, wo nach Bestätigung ein hidden form mit übergebenem filename und filename_tmp wieder an die funktion des dateiuploads übergeben wird.
Dies ging natürlich voll in die hose. Ich denke, hier sind die save settings des servers dafür verantwortlich.
Es wird halt alles gecheckt und das popup kommt auch bei vorhandenem dateinamen, aber das tmp_file per value in der hidden form zu übergeben funzt natürlich nicht.
Hat jemand eine idee wie man dieses problem trotzdem lösen könnte.
|

09-05-2009, 23:21
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Der Upload ist bereits mit dem ersten Abschicken des Formulars erfolgt - aber die Datei bleibt nur so lange im Temp-Verzeichnis erhalten, wie die dabei angestossene Scriptinstanz läuft.
Also müsstest du sie zu dem Zeitpunkt schon sichern, in dem du sie in ein anderes Verzeichnis verschiebst.
Anschliessend kannst du beim Client rückfragen, und dann ggf. die vorhandene Datei mit der neuen überschreiben (bzw. erst löschen, dann umkopieren).
Sessions helfen, den temporären Dateinamen zu "behalten".
Andere Alternative wäre, den Namen schon vor dem Upload zu überprüfen, mittels AJAX.
In dem Fall allerdings bedenken, dass Race Conditions entstehen können.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

09-05-2009, 23:41
|
|
kasIQ
Registrierter Benutzer
|
|
Registriert seit: Mar 2005
Beiträge: 148
|
|
wahsaga legst du etwa nachtschicht ein? hehe...
ja danke für deinen denkanstoss.
werde die datei erstmal in ein extra tmp verzeichnis hochladen und nach
fileckeck == TRUE und bestätigung des überschreibens die datei aus dem Verzeichnis löschen und die datei aus dem tmp rüberkopieren.
ja das hört sich gut an. das versuch ich gleich mal.
nochmals danke
|

10-05-2009, 00:28
|
|
kasIQ
Registrierter Benutzer
|
|
Registriert seit: Mar 2005
Beiträge: 148
|
|
Yessss!!
hat underbar geklappt
PHP-Code:
/**Fileupload
*
*/
public static function FileUpload ($filename, $filename_tmp, $overwritefile = false){
#Dateiname Normalisieren
$filename = CE_FRONTEND::normalizeUploadFileName($filename);
#Datei wird in das temporäre Verzeichnis kopiert
move_uploaded_file($filename_tmp, FILEUPLOADDIR_TMP.$filename);
#Überprüfung ob der Dateiname bereuts im Upload Ordner existiert
$checkfilenameexists = CE_FRONTEND::checkFileIsAvailableInDir(FILEUPLOADDIR, $filename);
if($checkfilenameexists == CE_FRONTEND::UploadFileExists && !$overwritefile){
return array("fileexists" => TRUE, "filename" => $filename);
} else {
copy(FILEUPLOADDIR_TMP.$filename, FILEUPLOADDIR.$filename);
unlink(FILEUPLOADDIR_TMP.$filename);
}
return array("uploadsuccess" => TRUE, "filename" => $filename);
}
übrigens funktioniert in dem forum der obere "antwort" button nicht.
nochmals danke
|

10-05-2009, 01:01
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Zitat:
Zitat von kasIQ
hat underbar geklappt
übrigens funktioniert in dem forum der obere "antwort" button nicht.
nochmals danke
|
Doch, aber nur bis zum T.
|

10-05-2009, 01:14
|
|
kasIQ
Registrierter Benutzer
|
|
Registriert seit: Mar 2005
Beiträge: 148
|
|
"antwort" button
table mit id="topics" hängt zu tief!
setzt einfach in folgendem table das margin-top:15px; noch rein
"<table cellspacing="0" cellpadding="0" border="0" width="100%" style="margin-bottom: 3px;">"
dann sollte das auch klappen
Geändert von kasIQ (10-05-2009 um 01:18 Uhr)
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
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.
HTML-Code ist aus.
|
|
|
|
PHP News
|