Können Sie ein Formular über AJAX senden, das eine Dateitypeingabe enthält? Ich versuche, jquery zu benutzen, aber es scheint, dass es die gesendete Datei nicht serialisieren kann. Ist dies etwas, das vom Browser als Sicherheitsrisiko blockiert wird? Gibt es einen Weg dahin?
Sie können dazu den File API
, Teil von HTML5, verwenden:
Für eine Diskussion über das Posten mit ihm können Sie mit
beginnen Grundsätzlich kann JavaScript mit dem File API
Dateien vom lokalen System lesen, wenn der Browser dies unterstützt, und Sie können das dann einfach über einen Ajax-Aufruf zusammen mit allem, was Sie sonst noch senden müssen, posten.
Wenn Sie mehrere Dateien einreichen müssen, ist dies ein guter Ausgangspunkt:
Wenn Sie jQuery verwenden müssen, können Sie dieses Plugin ausprobieren, obwohl ich es noch nie benutzt habe:
Ich habe Scott Harwell abgelehnt, ohne eine genaue Erklärung dafür zu geben, warum ich abgelehnt habe. Ich habe abgelehnt, weil dies getan werden kann, und ich mache es konsequent. Mein Code ist wie folgt:
html-Tag:
%Vor% Der Schlüssel ist enctype="multipart/form-data"
Meine jQuery ajax-Anweisung lautet wie folgt:
%Vor%Ich verwende Visual FoxPro als meine Programmiersprache für diese Funktion, damit ich meinen VFP-Code posten kann, aber Sie können diesen Code nur an die Programmiersprache anpassen, die Sie verwenden:
%Vor%Dies empfängt den Eingabewert als loAttachment (lo steht für Local Object). Dann wird unter anderem festgestellt, ob die Länge des Anhangsinhalts größer als 0 ist. Wenn dies der Fall ist, wird der Anhang für den späteren Zugriff in einem lokalen Webverzeichnis gespeichert.
Die technische Antwort ist nein, aber es gibt "Hacks", um Ihr Formular an einen versteckten iFrame zu senden, um so zu erscheinen, als wäre es Ajax. Eine Google-Suche sollte viele Beispiele ergeben.