我想实现 html +js 上传图片 并保存到本地tmp目录下,现有代码如下,求指导。必采纳

JavaScript027

我想实现 html +js 上传图片 并保存到本地tmp目录下,现有代码如下,求指导。必采纳,第1张

你js代码把文件以base64编码形式展示了出来,是为了让用户上传文件之前能够预览对吧。

文件的IO操作需要用后端来实现,如果你只是做web前端开发的话,就没有必要研究这个东西,如果你是后端开发者的话可以尝试一下,相关的资料很多,我写个示例吧,后端用php为例:

html实现:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>ss</title>

</head>

<body>

<form action="file.php" method="post" enctype="multipart/form-data">

<input type="file" name="upfile">

<input type="submit" value="提交">

</form>

</body>

</html>

php实现(file.php):

<?php

@header('Content-Type:text/htmlcharset=utf-8')

if(!isset($_FILES['upfile'])){

exit('请选择您要上传的文件!')

}

if(!file_exists($_FILES['upfile']['tmp_name'])){

exit('您要上传的文件不存在!')

}

$file_dir=dirname(__FILE__).'/tmp'

if(!is_file($file_dir)){

@mkdir($file_dir,0777,true)

}

$file_ext='.jpg'

if(preg_match('/(\.\w+)$/', $_FILES['upfile']['name'],$ext_tmp)){

$file_ext=$ext_tmp[1]

}

$file_save_path=$file_dir.'/'.uniqid().mt_rand(101,999).$file_ext

@rename($_FILES['upfile']['tmp_name'],$file_save_path)

if(!file_exists($file_save_path)){

exit('文件上传失败!')

}

exit('文件上传成功!')

需要先下载安装nodejs即服务器端的js,语法和浏览器端的一样,

write.js

var fs = require("fs")

var data = '我是新写入的内容'

// 创建一个可以写入的流,写入到文件 output.txt 中

var writerStream = fs.createWriteStream('output.txt')

// 使用 utf8 编码写入数据

writerStream.write(data,'UTF8')

// 标记文件末尾

writerStream.end()

// 处理流事件 --> data, end, and error

writerStream.on('finish', function() {

    console.log("写入完成。")

})

writerStream.on('error', function(err){

   console.log(err.stack)

})

console.log("程序执行完毕")

打开cmd,cd到当前目录,node main

文件就创建写入了。

下面这种方法,只支持老版本的ie浏览器ie8及以下;

var fso, f1, f2, s

fso = new ActiveXObject("Scripting.FileSystemObject")

f1 = fso.CreateTextFile("c:\\testfile.txt", true)

// 写一行

f1.Write("This is a test.")

// 关闭文件

f1.Close()

// 获取C:\根目录下的文件句柄

f2 = fso.GetFile("c:\\testfile.txt")

// 移动文件到\tmp目录下

f2.Move ("c:\\tmp\\testfile.txt")

// 拷贝文件到\temp目录下

f2.Copy ("c:\\temp\\testfile.txt")

// 获取文件句柄

f2 = fso.GetFile("c:\\tmp\\testfile.txt")

f3 = fso.GetFile("c:\\temp\\testfile.txt")

// 删除文件

f2.Delete()

f3.Delete()