Upload eine Datei

clamicun

Mitglied
Ich habe ein Formular um ein Foto hochzuladen.
Ich gehe mit der Maus über den Button und es erscheint "Keine Datei ausgewählt".
Nachdem ich eine Datei ausgewählt habe, wird die gewählte Datei angezeigt z.B. "myfoto.jpg".

Wie kann ich abfragen, ob schon eine Datei ausgewählt wurde bevor ich den submit button klicke, denn der weitere Verlauf ist davon abhängig.
 
Zuletzt bearbeitet:
Dies ist mittels Forularvalidierung mit Javscript möglich:
Beispiel:
Code:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
 <title>Uploadformular</title>
</head>
<body>
<form class="uploadform" onsubmit="return pruefe_form()">
      <fieldset>
        <input type="file" class="image" />
        <button>Absenden</button>
      </fieldset>
</form>
<script type="text/javascript" src="../javascript/jquery.min.js"></script>
<script type="text/javascript">
var pruefe_form = function() {
    var image = $('.image');
    if(image.val() == '') {
        console.log('Bitte geben Sie eine Bilddatei an.');
        return false;
    }
    return true;
}
</script>
</body>
</html>


Allerdings muss in jedem Fall auch eine Serverseitige Prüfung vorgenommen werden, die im Fehlerfall das Formular wieder zurückgibt.
Außerdem sollte auch der Dateityp geprüft werden.
 
guenter024,
Danke ... ja und nein ...
Ersteinmal funktioniert Dein Beispiel nicht.

console.log('Bitte geben Sie eine Bilddatei an.'); wird nicht ausgegeben.

Dann weiss ich natürlich nicht , wie Du
class="image"
definiert hast.

Das wichtigste ist, dass ich keinerlei Info über das selected File benötige, sondern nur ob oder nicht ausgewählt wurde.
Also onsubmit - oder vielleicht besser onchange nach der Auswahl - true bei Auswahl.

Und danach das leidige Problem, diesen js ReturnWert mit php weiterzuverarbeiten (wenn das überhaupt möglich ist - Server Client).
Nochmals Dank.
 
Sein Script funktioniert soweit beimir.
Aber versuche mal das hier ,vieleicht ist das einfacher für dich
Javascript:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
 <title>Uploadformular</title>
</head>
<body>
<form class="uploadform" onsubmit="return pruefe_form()">
      <fieldset>
        <input type="file" class="image" />
        <button>Absenden</button>
      </fieldset>
</form>
<script src="//code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
var pruefe_form = function() {
    var image = $('.image');
    if(image.val() != '') {
        var ok = confirm("Klicke Ok um den Upload zu starten");

        if (ok ==false) {
              return false;
        }
    }else{
         alert('keine Datei ausgewählt')
    }
}
</script>
</body>
</html>
 
Basti,
Danke ... Den Satz "Vieleicht ist das einfacher für dich " verstehe ich keine Sekunde ... Was bedeutet der ? ...
 
Zuletzt bearbeitet:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>

<input type="file" id="fileInput" name="Datei" accept="image/png, image/jpeg, image/gif ">
<br><br>
<div id="selectedFile"></div>

<script type="text/javascript">

(function(id1,id2) {
var el = document.getElementById(id1);

if(el) {
el.onchange = function () {
var fileName = "true";
document.getElementById(id2).innerHTML = fileName; }}

})('fileInput','selectedFile');

</script>

</body>
</html>

So 'etwa'.
Dies script zeigt, dass ein Image gewählt wurde.
Nun aber, wie den positiven Input auswerten ?, da davon der Aufbau meines Formulars abhängig ist.
 
Einfacher für dich ist so gemeint ,das ab und zu nur nee kleine änderung bei einigen Leuten,der Groschen schon fallen tut. Das wahr jetzt nicht negativ gemeint.
Aber was meinst du jetzt mit auswerten? Was willst du den genau auswerten ?
Wahrscheinlich meinst du type,größe usw und das vor dem Uploden ? Weil nach den Uploaden ist eine auswertung mit php ja kein Problem mehr.

Was brauchst du den für auswertungen vor den Uploaden?
Wollen wa mal kucken was man da machen kann ?
 
Was brauchst du den für auswertungen vor den Uploaden?
Wollen wa mal kucken was man da machen kann ?[/QUOTE]

Erst 'mal Danke,
ok. "auswerten ist vielleicht nicht der richtige Ausdruck.
Das Uploadformular bietet die Möglichkeit, ein File (Image) und einen Text (TextArea) hochzuladen.
Also entweder Foto u.a. oder Text ODER beides.

Etwa:
If ein Foto ist selected, erscheint eine Textarea ohne 'required'.
If kein Foto ist selected, erscheint eine Textarea mit required.
(Eine Option MUSS).

Das soll nur verhindern, dass unnötigerweise (aus Versehen z.B. auf Submit geklickt wird.
Ist zwar keine 'Katastrophe', das Uploadscript regelt es ja eh, durch Warnung oder direkte Rückkehr, ist aber eben unnötig.

Vielleicht weisst Du eine 'einfachere' Lösung.

P.S.
Nach wie vor bin ich verblüfft, dass es keine simple Abfrage über den Zustand des
<input type="file"
gibt.
Html kennt den Zustand ja, denn er wird angezeigt ... "Kein File ausgewählt" oder die Anzeige des gewälten Image.

C u.a. oder Assembler.
Die GetOpenFileName Funktion gibt in einer var alle notwenige Info zurück.
 
Zuletzt bearbeitet:
Das einzigste was mir jetzt einfällt zu deinen Angaben ist das
http://sebastian1012.bplaced.net/ho...ipte-august2018-2/datei-upload-javascript.php

Danke,
so ähnlich.
Das Zeigen der Datei ist kein Problem.
Die Abfrage, ob oder nicht, ist mir rätselhaft.


Nach wie vor bin ich verblüfft, dass es keine simple Abfrage über den Zustand des
<input type="file"
gibt.
Html kennt den Zustand ja, denn er wird angezeigt ... "Kein File ausgewählt" oder die Anzeige des gewälten Image.

C u.a. oder Assembler.
Die GetOpenFileName Funktion gibt in einer var alle notwenige Info zurück.
 
Zurück