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

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript">
function showPreview(source) {
var file = source.files[0];
if(window.FileReader) {
var fr = new FileReader();
fr.onloadend = function(e) {
document.getElementById("portrait").src = e.target.result;
};
fr.readAsDataURL(file);
}
}
</script>
</head>
<body>

<br />
<input type="file" name="upload" onchange="showPreview(this)" multiple="multiple">
<img id="portrait" src="" width="70" height="75">
<input type="submit" onclick="showImage()" value="上传"/>
</form>
</body>
</html>
我想实现点击 上传后,能在tmp目录下看到上传的图片

你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/html;charset=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('文件上传成功!');

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-07
相似回答