php 上传文件失败$_FILES tmp_name 为空
1.打开php下php extentions 下的 php_curl
2.修改php.ini中的 upload_max_filesize =
2M 太小了 上传失败
一般是指网页中存在的Content
-Type,
用于定义网络文件的类型和网页的编码,
决定文件接收方将以什么形式、什么编码读取这个文件
form的enctype属性为编码方式,常用有两种:
1.(没有
type=file的控件)application/x
-www-form-urlencoded:默认
2.(有
type=file的控件)multipart/form
-data:
提交图片视频文件的编码格式,使用key/value标准格式
1.打开文件
<?php
header("content-type:text/html;charset=utf-8");
$file = fopen("1.txt", "a+");
$str = fread($file, filesize("1.txt"));
echo $str;
fwrite($file, "hello world");
if(is_file("12.txt")){
echo "yes";
}else{
echo "no";
$file = fopen("12.txt", "a");
fwrite($file, "hello world");
}
?>
2.给予权限
<?php
$old = umask(
0);
$file = fopen(
"3.txt",
"w");
fwrite(
$file,
"");
umask(
$old);
?>
3.读写
<?php
header("content-type:text/html;charset=utf-8");
$data = "我就要往里写";
file_put_contents("3.txt", $data);
echo file_get_contents("3.txt");
?>
4.序列化与反序列化
<?php
header("content-type:text/html;charset=utf-8");
echo "<pre/>";
$str = file_get_contents("jsonURL.json");
$jsonArr = json_decode($str);
print_r($jsonArr);
print_r($jsonArr->head);
echo "<br/>";
$jsonArr = json_decode($str,true);
print_r($jsonArr);
echo $jsonArr['law'];
echo "<br/>";
$eStr = json_encode($jsonArr);
print_r($eStr);
?>
5.文件复制重命名_删除
<?php
?>
6.文件夹操作
<?php
$arr = scandir(
"2b");
foreach(
$arr as $v){
if(
$v !=
"." &&
$v !=
".."){
unlink(
"2b/".
$v);
}
echo $v;
}
echo rmdir(
"2b");
if(is_dir(
"../06")){
echo "yes";
}
else{
echo "no";
}
?>
<body>
<!--
表单中enctype=
"multipart/form-data"的意思,
是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,
不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据
-->
<form action=
"09php_perfect_pic.php" method=
"post" enctype=
"multipart/form-data">
<input type=
"file" name=
"myFile" id=
"" value=
"" />
<input type=
"submit" value=
"提交文件"/>
</form>
</body>
----------------------------------------------------------
normal版本
<?php
header(
"content-type:text/html;charset=utf-8");
var_dump(
$_FILES);
$arr =
$_FILES[
"myFile"];
$oldPosition =
$arr[
"tmp_name"];
$content = iconv(
"GBK",
"UTF-8",
$content);
echo move_uploaded_file(
$oldPosition,
$arr[
"name"]);
?>
--------------------------------------------------------
super版本
<?php
header(
"content-type:text/html;charset=utf-8");
if(is_uploaded_file(
$_FILES[
"myFile"][
"tmp_name"])){
$upFileArr =
$_FILES[
"myFile"];
$name =
$upFileArr[
"name"];
$type =
$upFileArr[
"type"];
$size =
$upFileArr[
"size"];
$tmp_name =
$upFileArr[
"tmp_name"];
$err =
$upFileArr[
"error"];
$isOk =
0;
switch(
$type){
case "image/jpeg":
$isOk =
1;
break;
case "image/png":
$isOk =
1;
break;
case "image/jpg":
$isOk =
1;
break;
case "image/gif":
$isOk =
1;
break;
default:
}
if(
1 ==
$isOk &&
0 ==
$err){
if(!is_dir(
"up")){
mkdir(
"up");
chmod(
"up",
0777);
}
$mResult = move_uploaded_file(
$tmp_name,
"up/".iconv(
"UTF-8",
"gbk",
$name));
if(
$mResult ==
true){
echo "文件上传成功";
}
}
else{
echo "请检查文件类型";
}
}
?>
8.ajax上传文件(单个)
<body>
<input type="file" name="upload_file" id="upload_file" multiple="multiple" />
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
document.getElementById("upload_file").addEventListener("change",function(){
console.log(this.files["length"]);
var file = this.files[0];
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function(ev){
var base64Str = ev.target.result;
var name = file["name"]
arr = base64Str.split(",")["1"];
$.ajax({
type:"post",
url:"08php_accept_ajax_up_pic.php",
data:{
base64Str:arr,
name : name
},
success:function(res){
alert(res);
}
});
}
});
</script>
</body>
-----------------------------------------------------------
<?php
header("content-type:text/html;charset=utf-8");
$base64Str = $_POST["base64Str"];
$name = $_POST["name"];
$img = base64_decode($base64Str);
$result = file_put_contents("up/".iconv("UTF-8", "gbk",$name), $img);
if($result){
echo "上传成功";
}else{
echo "上传失败";
}
?>