Datei-öffnen-dialog und senden Bild durch klicken auf ein Bild
Ich versuche, ein Bild hochzuladen, indem Sie auf ein vorhandenes Bild in einem bestimmten element.
So wird der Benutzer auf ein Bild klicken, die Datei-upload-dialog wird sich zeigen und wenn der Benutzer wählt ein Bild aus dem Datei-dialog die form automatisch das Formular absendet und die Seite lädt.
Hier einige Codes die ich habe:
$(document).ready(function() {
$('#profile').click(function(e){
$('#fileUploadField').click();
e.preventDefault();
});
header('Location: ' . $current_file);
});
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="profile" id="fileUploadField"> <input type="submit">
</form>
Profil div wo das Bild enthalten ist
Habe ich bereits den code zum anzeigen des Bildes. Ich brauche nur den dialog zu öffnen, und auf close, senden Sie das Formular und die Seite aktualisieren.
Hier ist mein anderer code:
<?php
if (isset($_FILES['profile']) === true) {
if (empty($_FILES['profile']['name']) === true) {
echo 'Please choose a file!';
} else {
$allowed = array('jpg', 'jpeg', 'gif', 'png');
$file_name = $_FILES['profile']['name'];
$file_extn = strtolower(end(explode('.', $file_name)));
$file_temp = $_FILES['profile']['tmp_name'];
if (in_array($file_extn, $allowed) === true) {
change_profile_image($session_user_id, $file_temp, $file_extn);
header('Location: ' . $current_file);
exit();
} else {
echo 'Incorrect file type. Allowed: ';
echo implode(', ', $allowed);
}
}
}
if (empty($user_data['picture']) === false) {
echo '<img src="', $user_data['picture'], '" alt="', $user_data['firstname'], '\'s Profile Image" style="height:100px">';
}
?>
InformationsquelleAutor TheNameHobbs | 2013-05-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist schwer, die trigger eine Eingabe vom Typ Datei, indem Sie auf etwas anderes. Das größte Problem, das Sie in ausgeführt wird, dass der IE dies als ein Sicherheitsrisiko und könnten nicht lassen Sie es tun (wenn der Eingang versteckt ist). Um dieses Problem, Sie könnte "fade" der Eingang hinter dem Bild, so dass, wenn der Benutzer auf das Bild klickt, sind Sie tatsächlich klicken Sie auf die Datei input.
Ihre html könnte etwa so Aussehen:
Dann würden Sie brauchen, um die Deckkraft der Eingang auf null, damit das Bild dahinter sichtbar sein, ohne Sie tatsächlich zu entfernen, den Eingang von der Seite:
Würden Sie auch brauchen, um die Dimensionen für das Bild und den container:
Beachten Sie, dass die Eingabe der Abmessungen gemeint sind, zu einem überlauf, so dass, egal wo Sie klicken Sie auf die container, die Sie auf den Eingang hinein. Die Eingabe soll so groß wie möglich und die tatsächlichen Abmessungen der Schaltfläche sind auf der container-und der Bild.
Sobald Sie es geschafft haben, öffnen Sie den dialog, das Einreichen der form wäre nur eine Sache zu tun:
InformationsquelleAutor JayPea
Finden Sie die post durch den Benutzer hardsetting für eine leichte und (IMO) die bessere Lösung:
CSS:
Ersetzen " input type=file durch ein Bild
Danke für das feedback, Guillaume! Ich habe jetzt aktualisiert die Antwort 🙂
InformationsquelleAutor Sirar Salih
Einige jquery :
InformationsquelleAutor Eric Thakvika
Habe ich weit bessere Lösung,
als ich habe, dieselbe Anforderung in meiner MVC Anwendung.
HTML :
image-tag für das Bild anzeigen, das binden von back-end,
JQuery: onclick der das image-tag,
so, mein fileUpload wählt die Datei, speichert Sie in PicturePath, und wenn ich post
form, die ich ausgewählt habe Bild am hinteren Ende...
InformationsquelleAutor Bharat
Dass ist das grundlegende. Die Allgemeine Idee, die Sie dort bekommen wird. Ich nahm an, Sie wollte, jquery, weil es war in einer Ihrer tags.
InformationsquelleAutor Four_lo