Primeiro, vamos fazer as renderizações:
Este é o código que fiz para mais fotos naquele momento. Vou retirá -lo para você aprender (alguns lugares precisam ser modificados por suas próprias personalidades, e a direção geral está correta)
Existem três documentos envolvidos no total (regularmente falando)
1. Route Entrada Arquivo (eu sou /Routes.js aqui, e geralmente é em /pp.js)
A cópia do código é a seguinte:
// Adicione comida deliciosa
app.all ('/add', usuários.add);
2. Arquivo do controlador de arrasto (eu sou /Routes/Users.js aqui)
A cópia do código é a seguinte:
// Adicione comida deliciosa
exports.add = function (req, res) {
if (req.method == "get") {
var user = {};
if (req.session.user) {
usuário = req.session.User;
}
Res.render ("Usuários/Food_add", {Title: 'Release Food-'+config.name, nome: config.name, usuário: usuário});
} else if (req.method == "post") {
// Obtenha dados
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 Endereço = 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 = date.parse (new date ())/1000;
VAR Suporte = 0;
var uid = req.body.uid;
// Processando o upload da imagem
//console.dir(req.files);
var file_obj = req.files.pics;
//console.log(file_obj.length);
var file_obj2 = [];
for (var i = 0; i <arquivo_obj.length; i ++) {
if (file_obj [i] .name) {
file_obj2.push (file_obj [i]);
}
}
var comprimento = file_obj2.length;
if (comprimento> 0) {
file_obj2.foreach (função (item, index) {
if (item.path) {
var tmppath = item.path;
var tipo = item.type;
var extension_name = "";
// Mova -se para o diretório especificado e geralmente o coloca no arquivo de imagens públicas
// Verifique se o caminho já existe ao se mover, caso contrário, um erro será relatado
var tmp_name = (DATE.PARSE (new Date ())/1000);
tmp_name = tmp_name+''+(math.round (math.random ()*9999));
// Tipo de arquivo do juiz
switch (tipo) {
case 'imagem/pjpeg': extension_name = 'jpg';
quebrar;
case 'imagem/jpeg': extension_name = 'jpg';
quebrar;
case 'imagem/gif': extension_name = 'gif';
quebrar;
case 'imagem/png': extension_name = 'png';
quebrar;
case 'imagem/x-png': extension_name = 'png';
quebrar;
case 'imagem/bmp': extension_name = 'bmp';
quebrar;
}
var tmp_name = tmp_name+'.'+extension_name;
var TargetPath = 'Public/Images/' + tmp_name;
console.log (tmppath);
// mova o arquivo temporário enviado para o diretório especificado
fs.rename (tmppath, TargetPath, function (err) {
if (err) {
lança err;
}
if (fotos) {
fotos += ',' +tmp_name;
}outro{
fotos += tmp_name;
}
// julga se está concluído
//console.log(Index);
// Excluir arquivos temporários
fs.unlink (tmppath, function () {
if (err) {
lança err;
}outro{
if ((índice+1) == comprimento) {
console.log (TargetPath);
// O processamento de upload é concluído
//dados
var dados = {
x: x, // longitude
y: y, // dimensão
CAT_ID: CAT_ID, // ID da categoria
Cat_name: Cat_name, // Nome da categoria
Endereço: Endereço, // Endereço
Título: Título, // Título
DEC: DESC, // Introdução
Conteúdo: Conteúdo, // Conteúdo
Fotos: fotos, // campo de imagem, separe várias imagens com ','
Preço: Preço, // Preço
Tags: tags, // tags são separadas por ','
add_time: add_time, // suporte
Suporte: Suporte, // O suporte padrão é 0
UID: UID // ID de usuário pode ser anônimo
};
Food_Predao.insert (dados, função (err, alimento) {
if (err) {
res.json ({err: 100, conteúdo: 'erro de banco de dados'});
}outro{
res.json ({err: 0, content: 'libere bem -sucedido!', Data: alimento});
}
});
}
}
});
});
}
});
}outro{
// Sem fotos
//dados
var dados = {
x: x, // longitude
y: y, // dimensão
CAT_ID: CAT_ID, // ID da categoria
Cat_name: Cat_name, // Nome da categoria
Endereço: Endereço, // Endereço
Título: Título, // Título
DEC: DESC, // Introdução
Conteúdo: Conteúdo, // Conteúdo
Fotos: fotos, // campo de imagem, separe várias imagens com ','
Preço: Preço, // Preço
Tags: tags, // tags são separadas por ','
add_time: add_time, // suporte
Suporte: Suporte, // O suporte padrão é 0
UID: UID // ID de usuário pode ser anônimo
};
Food_Predao.insert (dados, função (err, alimento) {
if (err) {
res.json ({err: 100, conteúdo: 'erro de banco de dados'});
}outro{
res.json ({err: 0, content: 'libere bem -sucedido!', Data: alimento});
}
});
}
}
};
3. Exibir arquivo (eu sou /views/users/food_add.ejs aqui)
A cópia do código é a seguinte:
<estilo>
.upload_item {width: 50px; Altura: 45px; Overflow: Hidden; borda: 2px tracejado #BFBFBF; Float: Esquerda; Margem-direita: 10px;}
.upload_item_add {width: 50px; Altura: 45px; exibição: bloco; altura da linha: 42px; Alinhamento de texto: centro; tamanho da fonte: 30px; Cursor: Ponteiro;}
.upload_input {}
</style>
<Cript>
var add = {
upload_click: function (obj) {
$ (obj) .Parent (). Children (). Eq (1) .Click ();
},
upload_change: function (obj) {
Var Path;
caminho = $ (obj) .val (); // c:/documentos e configurações/hud/desktop/addfile.jpg
var aa;
aa = path.split ('.');
//alert(aaaa.length-1]); // resultado jpg
Var Nome;
nome = path.split ('//');
var bb = nome [name.length-1];
// alerta (bb.substr (0, bb.indexOf ('.'))); // AddFile resultado
$ (obj) .Parent (). Children (). Eq (0) .css ('fontsize', '12px');
$ (obj) .parent (). css ('borderstyle', 'sólido');
$ (obj) .parent (). Children (). Eq (0) .html (bb.substr (0, bb.indexof ('.')));
if ($ (obj) .parent (). att ('index') == 1) {// adicione novo
var html = '<div index = "1"> <span onclick = "add.upload_click (this)">+</span> <input type = "file" name = "pics" id = "pics" ochange = "add.upload_change (this)"/> </div>';
$ ('#upload_box'). Append (html);
$ (obj) .parent (). att ('index', '0');
}
}
};
</script>
<form method = "post" action = "/add" Enctype = "multipart/form-data">>
<tabela>
<tr>
<td> longitude: </td> <td> <input type = "text" name = "x" id = "x"/> </td>
</tr>
<tr>
<td> dimensão: </td> <td> <input type = "text" name = "y" id = "y"/> </td>
</tr>
<tr>
<td> categoria: </td> <td> <select name = "cat_id"> <opção value = "1"> categoria 1 </pption> </leclect> </td>
</tr>
<tr>
<td> Endereço: </td> <td> <input type = "text" name = "endereço" id = "endereço"/> </td>
</tr>
<tr>
<td> Título: </td> <td> <input type = "text" name = "title" id = "title"/> </td>
</tr>
<tr>
<td> Introdução: </td> <td> <input type = "text" name = "desc" id = "descec"/> </td>
</tr>
<tr>
<Td> Conteúdo: </td> <td> <input type = "text" name = "content" id = "content"/> </td>
</tr>
<tr>
<td> imagem: </td> <td id = "upload_box"> <div index = "0" style = "Display: None;"> <span onclick = "add.upload_click (this)">+</span> <add.upy type = "file" name = "pics" id = "pics"/OnChange = "ADDCO.UCLO =" FILE " index = "1"> <span onclick = "add.upload_click (this)">+</span> <input type = "file" name = "pics" id = "pics" onchange = "add.upload_change (this)"/> </div> </td>
</tr>
<tr>
<td> Preço: </td> <td> <input type = "text" name = "price" id = "preço"/> </td>
</tr>
<tr>
<td> tags: </td> <td> <input type = "text" name = "tags" id = "tags"/> </td>
</tr>
<tr>
<td colspan = "2"> <input type = "submit" value = "submit" /> </td>
</tr>
</tabela>
</morm>