drrw8672 2016-07-01 16:27
浏览 28

上传拖放图像javascript并用php保存

i need to do a drag and drop image uploader. I have this code, but i'm not sure what it's doing.

 HTML
        <div id="drop_zone" style="width: 100%; height: 200px; "></div>
        <output id="list"></output>

JavaScript

        function ManejadorDeArchivosSeleccionados(evt) {
            evt.stopPropagation();
            evt.preventDefault();
            var files = evt.dataTransfer.files;
            var output = [];
            for(var i = 0, f; f = files[i]; i++) {
                output.push('<li><strong>', escape(f.name),'</strong> (', f.type || 'n/a',') - ',f.size, 'bytes, last modified ', f.lastModifiedDate.toLocaleDateString(), '</li>');
            }
            document.getElementById('list').innerHTML = '<ul>' + output.join(' ') + '</ul>';


        }         


        function ManejadorDragOver(evt) {
            evt.stopPropagation();
            evt.preventDefault();
            evt.dataTransfer.dropEffect = 'copy';
        }
        var dropZone = document.getElementById('drop_zone');
        dropZone.addEventListener('dragover',ManejadorDragOver,false);
        dropZone.addEventListener('drop',ManejadorDeArchivosSeleccionados,false);

The output is alright it prints the name, type size and date of the file, but i don't know hot to save it in a folder. I know i have to use POST or ajax i just don't what to send and how to send to php for saving it.

  • 写回答

1条回答 默认 最新

  • duanbai1370 2016-07-01 16:47
    关注

    You can use FormData and XmlHttpRequest2, both supported by all major browsers (ie10+).

         var files = evt.dataTransfer.files;
         var data = new FormData();
         for( var i = 0, l=fields.length; i<l; i++ ){
             var f = files[i];
             data.append( "files["+i+"][file]", f, f.name ); 
             data.append( "files["+i+"][name]", f.name ); #for ie 
         }
         var req = new XMLHttpRequest(); 
         req.open( 'POST', '/ajax.php', true );
         req.onreadystatechange = function(){
            if( req.readyState !== 4 ) return;
            console.log('all files sended');
         }.bind( this );
         req.send( data );
    
    评论

报告相同问题?

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP