Nehmen wir zunächst die Renderings:
Dies ist der Code, den ich zu dieser Zeit für weitere Bilder gemacht habe. Ich werde es für Sie herausnehmen, von dem Sie lernen können (einige Orte müssen von Ihren eigenen Persönlichkeiten geändert werden, und die allgemeine Richtung ist korrekt)
Insgesamt sind drei Dokumente beteiligt (regelmäßig)
1.Route -Eintragsdatei (ich bin /routes.js hier, und es ist oft in /app.js)
Die Codekopie lautet wie folgt:
// köstliches Essen hinzufügen
app.all ('/add', users.add);
2.Routing Controller -Datei (ich bin /routes/users.js hier)
Die Codekopie lautet wie folgt:
// köstliches Essen hinzufügen
exports.add = function (req, res) {
if (req.method == "get") {
var user = {};
if (req.session.user) {
user = req.Session.user;
}
res.render ("user/food_add", {title: 'release food-'+config.name, name: config.name, user: user});
} else if (req.method == "post") {
// Daten abrufen
var x = req.body.x;
var y = req.body.y;
var cat_id = req.body.cat_id;
var cat_name = req.body.cat_name;
var address = req.body.address;
var title = req.body.title;
var desc = req.body.desc;
var content = req.body.content;
var pics = '';
var price = req.body.price;
var tags = req.body.tags;
var add_time = Datum.Parse (neues Datum ())/1000;
var Support = 0;
var uid = req.body.uid;
// Bild -Upload verarbeiten
//console.dir(req.files);
var file_obj = req.files.pics;
//console.log(file_obj.length);
var file_obj2 = [];
für (var i = 0; i <file_obj.length; i ++) {
if (file_obj [i] .name) {
file_obj2.push (Datei_obj [i]);
}
}
var länge = file_obj2.Length;
if (Länge> 0) {
Datei_OBJ2.foreach (Funktion (Element, Index) {
if (item.Path) {
var tmppath = item.Path;
var type = item.type;
var erweiterung_name = "";
// Gehen Sie in das angegebene Verzeichnis und setzen Sie es normalerweise unter die Datei der öffentlichen Bilder ein
// Stellen Sie sicher, dass der Pfad bereits beim Umzug vorhanden ist. Andernfalls wird ein Fehler gemeldet
var tmp_name = (Datum.Parse (neues Datum ())/1000);
tmp_name = tmp_name+''+(math.round (math.random ()*9999));
// Richter Dateityp
Switch (Typ) {
Fall 'Bild/PJPEG': Erweiterung_Name = 'JPG';
brechen;
Fall 'Bild/JPEG': Erweiterung_Name = 'JPG';
brechen;
Fall 'Bild/GIF': Erweiterung_Name = 'Gif';
brechen;
Fall 'Bild/PNG': Erweiterung_Name = 'PNG';
brechen;
Fall 'Bild/X-PNG': Erweiterung_Name = 'PNG';
brechen;
Fall 'Bild/BMP': Erweiterung_Name = 'BMP';
brechen;
}
var tmp_name = tmp_name+'.'+erweiterung_name;
var targetPath = 'public/images/' + tmp_name;
console.log (tmppath);
// Verschieben Sie die hochgeladene temporäre Datei in das angegebene Verzeichnis
fs.rename (tmppath, targetPath, function (err) {
if (err) {
errösten;
}
if (Bilder) {
Bilder += ',' +tmp_name;
}anders{
Bilder += tmp_name;
}
// Beurteile, ob es abgeschlossen ist
//console.log(Index);
// temporäre Dateien löschen
fs.unlink (tmppath, function () {
if (err) {
errösten;
}anders{
if ((index+1) == Länge) {
console.log (targetPath);
// Die Upload -Verarbeitung ist abgeschlossen
//Daten
var data = {
X: x, // Länge
y: y, // Dimension
Cat_id: Cat_id, // Kategorie -ID
Cat_Name: Cat_Name, // Kategorie Name
Adresse: Adresse, // Adresse
Titel: Titel, // Titel
Desc: Desc, // Einführung
Inhalt: Inhalt, // Inhalt
Bilder: Bilder, // Bildfeld, separate mehrere Bilder mit ','
Preis: Preis, // Preis
Tags: Tags, // Tags werden durch ',' getrennt. '
add_time: add_time, // Unterstützung
Unterstützung: Unterstützung, // Die Standardunterstützung ist 0
UID: UID // Benutzer -ID kann anonym sein
};
food_prredao.insert (Daten, Funktion (err, food) {
if (err) {
res.json ({err: 100, Inhalt: 'Datenbankfehler'});
}anders{
res.json ({err: 0, Inhalt: 'erfolgreich veröffentlichen!', Daten: Food});
}
});
}
}
});
});
}
});
}anders{
// keine Bilder
//Daten
var data = {
X: x, // Länge
y: y, // Dimension
Cat_id: Cat_id, // Kategorie -ID
Cat_Name: Cat_Name, // Kategorie Name
Adresse: Adresse, // Adresse
Titel: Titel, // Titel
Desc: Desc, // Einführung
Inhalt: Inhalt, // Inhalt
Bilder: Bilder, // Bildfeld, separate mehrere Bilder mit ','
Preis: Preis, // Preis
Tags: Tags, // Tags werden durch ',' getrennt. '
add_time: add_time, // Unterstützung
Unterstützung: Unterstützung, // Die Standardunterstützung ist 0
UID: UID // Benutzer -ID kann anonym sein
};
food_prredao.insert (Daten, Funktion (err, food) {
if (err) {
res.json ({err: 100, Inhalt: 'Datenbankfehler'});
}anders{
res.json ({err: 0, Inhalt: 'erfolgreich veröffentlichen!', Daten: Food});
}
});
}
}
};
3.. Datei anzeigen (ich bin /views/users/food_add.ejs hier)
Die Codekopie lautet wie folgt:
<Styles>
.Upload_item {width: 50px; Höhe: 45px; Überlauf: Hidden; Grenze: 2PX gestrichelt #bfbfbf; float: links; margin-right: 10px;}
.Upload_item_add {width: 50px; Höhe: 45px; Anzeige: Block; Zeilenhöhe: 42px; Text-Align: Mitte; Schriftgröße: 30px; Cursor: Zeiger;}
.Upload_input {}
</style>
<Script>
var add = {
upload_click: function (obj) {
$ (obj) .Parent (). Kinder (). EQ (1) .Click ();
},
upload_change: function (obj) {
var Pfad;
path = $ (obj) .val (); // C:/Dokumente und Einstellungen/HUD/Desktop/Addfile.jpg
var aa;
aa = path.split ('.');
//alert(aa Appany.Length-1]); // JPG -Ergebnis
var name;
name = path.split ('//');
var bb = name [name.length-1];
// alert (bb.substr (0, bb.indexof ('.'))); // Addfile -Ergebnis
$ (obj) .Parent (). Kinder (). EQ (0) .css ('fontsize', '12px');
$ (obj) .Parent (). CSS ('BORDERSYLE', 'Solid');
$ (obj) .Parent (). Kinder (). EQ (0) .html (Bb.Substr (0, Bb.Indexof ('.')));
if ($ (obj) .Parent (). attr ('index') == 1) {// Neu hinzufügen
var html = '<div index = "1"> <span onclick = "add.Upload_click (this)">+</span> <Eingabe type = "Datei" name = "pics" id = "pics" onchange = "add.Upload_change (this)"/> </div>';
$ ('#Upload_box'). append (html);
$ (obj) .Parent (). attr ('Index', '0');
}
}
};
</script>
<form methode = "post" action = "/add" engType = "MultiPart/Form-Data">
<tabelle>
<tr>
<td> Länge: </td> <td> <Eingabe type = "text" name = "x" id = "x"/> </td>
</tr>
<tr>
<td> Dimension: </td> <td> <Eingabe type = "text" name = "y" id = "y"/> </td>
</tr>
<tr>
<td> Kategorie: </td> <td> <select name = "cat_id"> <option value = "1"> Kategorie 1 </option> </select> </td>
</tr>
<tr>
<td> Adresse: </td> <td> <Eingabe type = "text" name = "address" id = "adresse"/> </td>
</tr>
<tr>
<td> Titel: </td> <td> <Eingabe type = "text" name = "title" id = "title"/> </td>
</tr>
<tr>
<td> Einführung: </td> <td> <Eingabe type = "text" name = "desc" id = "Desc"/> </td>
</tr>
<tr>
<td> Inhalt: </td> <td> <Eingabe type = "text" name = "content" id = "content"/> </td>
</tr>
<tr>
<td> Bild: </td> <td id = "upload_box"> <div index = "0" style = "display: none;"> <span onclick = "add.Upload_click (this)">+</span> <Eingabe type = "Datei" name = "pics" id = "pics" auf dem Index = "add.Upload.Ut.Upload (this)". onclick = "add.upload_click (this)">+</span> <Eingabe type = "Datei" name = "pics" id = "pics" onchange = "add.Upload_change (this)"/> </div> </td>
</tr>
<tr>
<td> Preis: </td> <td> <Eingabe type = "text" name = "price" id = "price"/> </td>
</tr>
<tr>
<td> Tags: </td> <td> <Eingabe type = "text" name = "tags" id = "tags"/> </td>
</tr>
<tr>
<td colspan = "2"> <Eingabe type = "suruging" value = "sureichen" /> < /td>
</tr>
</table>
</form>