美文网首页工作生活
托拽文件并读取文件demo

托拽文件并读取文件demo

作者: coffee1949 | 来源:发表于2019-06-29 16:38 被阅读0次

    package.json

    {
      "name": "04-dragfile-readfile",
      "version": "1.0.0",
      "description": "",
      "main": "main.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "electron ."
      },
      "keywords": [],
      "author": "",
      "license": "ISC"
    }
    
    

    main.js

    const { app, BrowserWindow } = require('electron')
    const path = require('path')
    
    let mainWindow = null
    
    function createWindow(){
        mainWindow = new BrowserWindow({
            width: 960,
            height: 600,
            webPreferences: {
                nodeIntegration: true
            }
        })
    
        mainWindow.loadURL(path.join("file://",__dirname,"index.html"))
    
        mainWindow.webContents.openDevTools()
    
        mainWindow.on('closed',()=>{
            mainWindow = null
        })
    }
    
    app.on('ready',()=>{
        createWindow()
    })
    
    app.on('window-all-closed',()=>{
        if(process.platform == 'darwin'){
            app.quit()
        }
    })
    
    app.on('active',()=>{
        if(mainWindow === null){
            createWindow()
        }
    })
    

    index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>electron</title>
        <style>
            div{
                width: 100%;
                height: 400px;
                background-color: rebeccapurple;
            }
        </style>
    </head>
    <body>
        <div class="content"></div>
    
        <script src="./renderer.js"></script>
    </body>
    </html>
    
    

    renderer.js

    const fs = require('fs')
    
    let content = document.querySelector('.content')
    
    // 这个默认事件必须阻止下
    content.ondragenter = content.ondragover = content.ondragleave = function(){
        return false
    }
    
    content.ondrop = function(e){
        // 阻止默认事件
        e.preventDefault()
    
        // 看下事件对象是个什么鬼东西
        console.log(e)
        console.log(e.dataTransfer.files[0])
        console.log(e.dataTransfer.files[0].path)
    
        // 拿到拖拽的文件路径
        let filePath = e.dataTransfer.files[0].path
    
        // 使用node的fs模块读取托拽的文件 && 把文件内容填到div.content中
        fs.readFile(filePath,'utf8',(err,data)=>{
            if(err){
                return err
            }
            content.innerHTML = data
        })
    }
    

    相关文章

      网友评论

        本文标题:托拽文件并读取文件demo

        本文链接:https://www.haomeiwen.com/subject/ijvpcctx.html