javascript js ajax 麻烦各位帮忙设计一个图片上传的系统,最好有详细的代码。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript js ajax 麻烦各位帮忙设计一个图片上传的系统,最好有详细的代码。相关的知识,希望对你有一定的参考价值。

后台node,用fs根据上传图片的名称将图片分进不同的文件夹。
一个商品的图片上传系统,该商品图片有总览图及分型图两大种。
总览图分到一个文件夹就可以。
分型图因为商品下还有不同的小型号,比如:商品编号为A001,A001下包含A001-a A001-b。
A001-a及A001-b都为多图片。
这个这么去设计呢?

目前想的是这样:
图片上传
服务器返回图片略缩图,及flag
为略所图填写名称
将名称与flag捆绑上传
服务器通过前台传来的data改写图片名称
根据名称分配文件夹
但是因为之前没做过这种的,所以有点懵了,不知道这么去做。求指导~(分不是问题)

ajax插件用的是jquery-file-upload,后台用的node,js用的jq。

具体思路是,上传图片时,放入临时目录,上传完成后,对图片生成uuid,重命名并已入图片文件夹,在数据库中记录uuid与商品id的对应关系。

插件的问题,jquery-file-upload我没用过,不过看了github上的文档,感觉说得蛮详细的。后端的也有涉及。node的部分使用express的中间件jquery-file-upload-middleware,你在github上搜这个吧,有很详细的前后端的示例代码。

如果你想要用原生的也很简单。利用html5的上传接口,或者使用iframe做个隐藏表单就行了。后端node部分,就是解析req的body部分,并且把他们写入文件。因为是数据流,可以使用更快地流写入方式。追问

嗯  后台用的是jquery-file-upload-middleware。现在的问题是前端这块写不好,没法获取生成的分型名称 就是A001-a这个没法获取

第一个红框是生成的A001-a  第二个红框是要点击的area,console.log出来的是未定义

追答

首先是取value部分,改为

var count = parseInt($(this).val(), 10);

不然你比的是字符串,可能会出问题的。

然后是你的这个问题。

var sileasd = $(this).prev('a').html();

这句,prev是拿当前节点的前一个节点,如果里面有参数,那就判断前一个节点是不是拥有此选择器。

所以你要用prevAll代替prev。同时由于a并非与此元素同级,而是在与它同级的MTaobaoIn_single_p的子级,所以还需使用find或者children来获取。

var sileased = $(this).prevAll('.MTaobaoIn_single_p').children('.MTaobaoIn_singlePic_upload').html();

或者

var sileased = $(this).parent().find('.MTaobaoIn_singlePic_upload').html();

此方法适用于这个form中就只有这一个id的情况。

不过我建议的是在元素上加上data数据绑定。使用$(element).data('id')的方式来获取id。

追问

谢谢谢谢 经验太少 写的东西漏洞太多。麻烦您了。

参考技术A 这个由你自己选

51单片机c语言问题,麻烦各位大哥大姐帮帮忙。。。

我想让七段数码管每隔一秒由0加到9999,程序如下,已经可以显示了,就是数码管显示不清楚,会模糊的出现下一个数字的轮廓,麻烦各位帮忙一下。。真的谢谢了,分剩下不多了,抱歉。。。
#include <reg52.h>
#include <intrins.h>
#define uc unsigned char
void delayus(uc);
void delayms(uc);
void display(int,int,int,int);
char code duan[]=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x8e;
unsigned int jnum=0;
uc num=0;
sbit oe=P2^7;
void main()


IE=0x82;
ET0=1;
TMOD=0x01;
TH0=0x1f;
TL0=0x00;
delayus(1);
TR0=1;
while(1)

if(num==32)

num=0;
if(jnum==9999)
jnum=0;
jnum++;
display(jnum/1000,jnum%1000/100,jnum%1000/10,jnum%10);
while(num!=32)

display(jnum/1000,jnum%1000/100,jnum%1000/10,jnum%10);




void int1() interrupt 1

TH0=0x1f;
TL0=0x00;
num++;


void display(int qian,int bai,int shi,int ge)

int s[4];
char i,temp;
s[3] = qian ;
s[2] = bai;
s[1] = shi;
s[0] = ge;
temp=0x77;
for(i=0;i<4;i++)

P0=temp;
WR=0;
delayus(1);
WR=1;
P0=0xff;
delayus(1);
P0=duan[s[3-i]];
delayus(10000);
temp=_cror_(temp,1);


void delayus(uc k)

uc z;
for(z=0;z<k;z++);

好像都不行,不过还是谢谢前面三位朋友,我想补充一下就是这个七段数码管位选在锁存器的右边,段选在锁存器左边,我想是不是怎么写程序都会影响到数码管的啊? 因为视频教程的段选和位选在不同的锁存器右边的。感觉这样就没问题了、、、

三种可能,
1、如果是多个数码管都很亮的话,是数码管的驱动电流太大,这种情况可串接一个小电阻实现。
2、是显示子程序里面的延时时间太长,一般5MS就够了。
3、也可能是因为你定义int s[4];是局部变量,当这个子程序执行结束后,变量释放,数值是随机的。虽然说单片机的程序的执行速度很快能够弥补这一点,但还是有可能会出问题的。建议把int s[4];定义为全局变量来试试。

不会有大问题的。加油!

我不知道你的整体电路时怎么实现的。你补充的很对,单片机的输出的控制信号应接到锁存器的输入端,锁存器的输出信号应与数码管的控制引脚相连接,这样才有锁存的意义,锁存器的输入输出如果弄反了,肯定不能工作的。如果还不行,建议你先试试把数码管的位选和段选直接接到单片机的IO来试一试,看程序本身有没有问题。程序没问题的话,那就是电路的问题了。
参考技术A 刷的速度太慢了。你改一改delayus(10000);里的参数,改小一点就好了,试一下。 参考技术B 数码管是一位一位的显示,是靠人的视觉暂留和数码管的余晖作用使人看到清晰的数字,人眼的视觉暂留大约是0.1秒,因此对各个数码管一遍扫描下来的总时间不能超过0.1秒!我一般使用8位数码管各个位显示间隔5毫秒就已经很清晰了 。
还有就是调用显示程序的时间间隔太大的话也会导致显示不清晰
参考技术C 你定义的num是unsigned char 类型,单片机里面对应无符号8位数据,所以num最大也就是256,你后面的判断条件num==9999 是不会成立的。

以上是关于javascript js ajax 麻烦各位帮忙设计一个图片上传的系统,最好有详细的代码。的主要内容,如果未能解决你的问题,请参考以下文章

51单片机c语言问题,麻烦各位大哥大姐帮帮忙。。。

JS是新手,请帮忙关于JavaScript循环的问题

麻烦各位英文高手帮忙翻译--委托合同

十万火急,还请各位园友们帮帮忙。谢谢!!能够用Java写出来的麻烦发一下代码。

js怎么读取本地txt文件

js代码循环提交多个请求?麻烦帮忙改成完整代码