أولاً ، دعنا نأخذ الاداءات:
هذا هو الرمز الذي صنعته لمزيد من الصور في ذلك الوقت. سوف أخرجها لكي تتعلم منها (بعض الأماكن يجب تعديلها بواسطة شخصياتك ، والاتجاه العام صحيح)
هناك ثلاث مستندات متورطة في المجموع (بالتحدث بانتظام)
1. ملف إدخال Route (أنا /routes.js هنا ، وغالبًا ما يكون في /app.js)
نسخة الكود كما يلي:
// إضافة طعام لذيذ
app.all ('/add' ، user.add) ؛
2. ملف وحدة تحكم (أنا /eroutes/users.js هنا)
نسخة الكود كما يلي:
// إضافة طعام لذيذ
orports.add = function (req ، res) {
if (req.method == "get") {
var user = {} ؛
if (req.session.user) {
المستخدم = req.session.user ؛
}
Res.Render ("users/food_add" ، {title: 'relection food-'+config.name ، name: config.name ، user: user}) ؛
} آخر إذا (req.method == "post") {
// الحصول على البيانات
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 = req.body.tags ؛
var add_time = date.parse (date ())/1000 ؛
var support = 0 ؛
var uid = req.body.uid ؛
// معالجة تحميل الصورة
//console.dir(req.files) ؛
var file_obj = req.files.pics ؛
//console.log(file_obj.length) ؛
var file_obj2 = [] ؛
لـ (var i = 0 ؛ i <file_obj.length ؛ i ++) {
if (file_obj [i] .name) {
file_obj2.push (file_obj [i]) ؛
}
}
var length = file_obj2.length ؛
إذا (طول> 0) {
file_obj2.foreach (وظيفة (العنصر ، الفهرس) {
if (item.path) {
var tmppath = item.Path ؛
var type = item.type ؛
var extension_name = "" ؛
// انتقل إلى الدليل المحدد وعادة ما وضعه ضمن ملف الصور العامة
// تأكد من وجود المسار بالفعل عند التحرك ، وإلا سيتم الإبلاغ عن خطأ
var tmp_name = (date.parse (date ())/1000) ؛
tmp_name = tmp_name+''+(Math.Round (Math.Random ()*9999)) ؛
// نوع الملف القاضي
التبديل (اكتب) {
Case 'Image/pjpeg': extension_name = 'jpg' ؛
استراحة؛
حالة "Image/JPEG": extension_name = 'jpg' ؛
استراحة؛
حالة "صورة/gif": extension_name = 'gif' ؛
استراحة؛
Case 'Image/png': extension_name = 'png' ؛
استراحة؛
Case 'Image/x-png': extension_name = 'png' ؛
استراحة؛
حالة "صورة/bmp": extension_name = 'bmp' ؛
استراحة؛
}
var tmp_name = tmp_name+'.'+extension_name ؛
var targetpath = 'public/images/' + tmp_name ؛
console.log (tmppath) ؛
// انقل الملف المؤقت الذي تم تحميله إلى الدليل المحدد
fs.rename (tmppath ، targetpath ، function (err) {
إذا (خطأ) {
رمي الخطأ
}
إذا (صور) {
pics += '،' +tmp_name ؛
}آخر{
صور += tmp_name ؛
}
// احكم إذا تم الانتهاء منه
//console.log(index) ؛
// حذف الملفات المؤقتة
fs.unlink (tmppath ، function () {
إذا (خطأ) {
رمي الخطأ
}آخر{
if ((index+1) == length) {
console.log (TargetPath) ؛
// اكتملت معالجة التحميل
//بيانات
بيانات var = {
X: X ، // خط الطول
Y: Y ، // البعد
CAT_ID: CAT_ID ، // معرف الفئة
CAT_NAME: CAT_NAME ، // اسم الفئة
العنوان: العنوان ، // العنوان
العنوان: العنوان ، // العنوان
DESC: DESC ، // مقدمة
المحتوى: المحتوى ، // المحتوى
الصور: صور ، // حقل الصورة ، فصل صور متعددة مع "،" ، "
السعر: السعر ، // السعر
العلامات: العلامات ، // يتم فصل العلامات بواسطة "،" ، "
add_time: add_time ، // support
الدعم: الدعم ، // الدعم الافتراضي هو 0
UID: uid // معرف المستخدم يمكن أن يكون مجهول الهوية
} ؛
food_predao.insert (البيانات ، الوظيفة (err ، food) {
إذا (خطأ) {
res.json ({err: 100 ، content: 'database error'}) ؛
}آخر{
res.json ({err: 0 ، content: 'regle success!' ، data: food}) ؛
}
}) ؛
}
}
}) ؛
}) ؛
}
}) ؛
}آخر{
// لا صور
//بيانات
بيانات var = {
X: X ، // خط الطول
Y: Y ، // البعد
CAT_ID: CAT_ID ، // معرف الفئة
CAT_NAME: CAT_NAME ، // اسم الفئة
العنوان: العنوان ، // العنوان
العنوان: العنوان ، // العنوان
DESC: DESC ، // مقدمة
المحتوى: المحتوى ، // المحتوى
الصور: صور ، // حقل الصورة ، فصل صور متعددة مع "،" ، "
السعر: السعر ، // السعر
العلامات: العلامات ، // يتم فصل العلامات بواسطة "،" ، "
add_time: add_time ، // support
الدعم: الدعم ، // الدعم الافتراضي هو 0
UID: uid // معرف المستخدم يمكن أن يكون مجهول الهوية
} ؛
food_predao.insert (البيانات ، الوظيفة (err ، food) {
إذا (خطأ) {
res.json ({err: 100 ، content: 'database error'}) ؛
}آخر{
res.json ({err: 0 ، content: 'regle success!' ، data: food}) ؛
}
}) ؛
}
}
} ؛
3. عرض الملف (أنا/afiews/users/food_add.ejs هنا)
نسخة الكود كما يلي:
<style>
.upload_item {width: 50px ؛ الارتفاع: 45 بكسل ؛ الفائض: مخفي ؛ الحدود: 2px متقطع #BFBFBF ؛ تعويم: اليسار ؛ الهامش اليمين: 10px ؛}
.upload_item_add {width: 50px ؛ الارتفاع: 45 بكسل ؛ العرض: كتلة ؛ Line-Leight: 42px ؛ محاذاة النص: المركز ؛ حجم الخط: 30 بكسل ؛ المؤشر: مؤشر ؛}
.upload_input {}
</style>
<script>
var add = {
expload_click: function (obj) {
$ (obj) .Parent (). الأطفال (). Eq (1) .click () ؛
} ،
expload_change: function (obj) {
var path ؛
path = $ (obj) .val () ؛ // C:/المستندات والإعدادات/HUD/Desktop/Addfile.jpg
var aa ؛
aa = path.split ('.') ؛
//alert(aa budapaa.length-1]) ؛ // JPG نتيجة
var اسم
name = path.split ('//') ؛
var bb = name [name.length-1] ؛
// ALERT (BB.SUBSTR (0 ، bb.indexof ('.')))) ؛ // نتيجة AddFile
$ (obj) .parent (). الأطفال (). Eq (0) .css ('fontsize' ، '12px') ؛
$ (obj) .parent (). css ('BordersTyle' ، 'Solid') ؛
$ (obj) .parent (). الأطفال ().
if ($ (obj) .parent (). attr ('index') == 1) {// إضافة جديد
var html = '<div index = "1"> <span onClick = "add.upload_click (this)">+</span> <input type = "file" name = "pics" id = "pics" onChange = "add.upload_change (this)"/> </div> ؛
$ ('#topload_box'). إلحاق (html) ؛
$ (obj) .parent (). attr ('index' ، '0') ؛
}
}
} ؛
</script>
<form method = "post" action = "/add" enctype = "multipart/form-data">
<griding>
<tr>
<td> longitude: </td> <td> <input type = "text" name = "x" id = "x"/> </td>
</r>
<tr>
<td> البعد: </td> <td> <input type = "text" name = "y" id = "y"/> </td>
</r>
<tr>
<td> الفئة: </td> <td> <تحديد name = "cat_id"> <خيار value = "1"> الفئة 1 </oper
</r>
<tr>
<td> العنوان: </td> <td> <input type = "text" name = "address" id = "address"/> </td>
</r>
<tr>
<td> العنوان: </td> <td> <input type = "text" name = "title" id = "title"/> </td>
</r>
<tr>
<td> مقدمة: </td> <td> <input type = "text" name = "desc" id = "desc"/> </td>
</r>
<tr>
<td> المحتوى: </td> <td> <input type = "text" name = "content" id = "content"/> </td>
</r>
<tr>
<td> الصورة: </td> <td id = "upload_box"> <div index = "0" style = "display: none ؛"> <span onClick = "add.upload_click (this)">+</span> <input type = "file" name = "pics" id = onClick = "add.upload_click (this)">+</span> <input type = "file" name = "pics" id = "pics" onchange = "add.upload_change (this)"/> </viv> </td>
</r>
<tr>
<td> السعر: </td> <td> <input type = "text" name = "price" id = "price"/> </td>
</r>
<tr>
<td> العلامات: </td> <td> <input type = "text" name = "tags" id = "tags"/> </td>
</r>
<tr>
<td colspan = "2"
</r>
</table>
</form>