我正在使用HTML表单上传文件。然后我使用files数组将它们转换为变量,然后我试图读取这个变量。
我的代码在这里:
if(isset($_POST['upload'])) {
$image = $_FILES['sfile'];
$contents = file_get_contents($image);
$links = explode(',',$contents);
echo $links[0];
}
从以下表格中调用
<html>
<head>
<title> Trial </title>
</head>
<body>
<form align="center" method="post" action="example.php" enctype="multipart/form-data">
Upload File Here : <input type="file" name="sfile"><br>
<input type="submit" name ="upload" value="Upload">
</form>
</body>
</html>
&#13;
答案 0 :(得分:1)
您应该从tmp_name
阅读,请参阅以下代码:
if (!empty($_FILES['sfile'])) {
$sfile = $_FILES['sfile'];
if ($sfile['error'] != UPLOAD_ERR_OK) {
// output error here
} else {
$contents = file_get_contents($sfile['tmp_name']);
$links = explode(',', $contents);
echo $links[0];
}
}
$_FILES
具有以下数组格式:
$_FILES['myfile']['name'] - the original file name
$_FILES['myfile']['type'] - the mime type
$_FILES['myfile']['size'] - the file size
$_FILES['myfile']['tmp_name'] - temporary filename
$_FILES['myfile']['error'] - error code
来自http://php.net/manual/en/features.file-upload.errors.php的错误代码:
UPLOAD_ERR_OK 值:0;没有错误,文件上传成功。
UPLOAD_ERR_INI_SIZE值:1;上传的文件超过了 php.ini中的upload_max_filesize指令。
UPLOAD_ERR_FORM_SIZE值:2;上传的文件超过了 在HTML表单中指定的MAX_FILE_SIZE指令。
UPLOAD_ERR_PARTIAL价值:3;上传的文件只是部分 上传。
UPLOAD_ERR_NO_FILE价值:4;没有上传文件。
UPLOAD_ERR_NO_TMP_DIR值:6;缺少临时文件夹。介绍 在PHP 5.0.3中。
UPLOAD_ERR_CANT_WRITE价值:7;无法将文件写入磁盘。 在PHP 5.1.0中引入。
UPLOAD_ERR_EXTENSION值:8; PHP扩展程序停止了该文件 上传。 PHP没有提供确定导致哪个扩展的方法 文件上传停止;检查加载的扩展名列表 phpinfo()可能有所帮助。在PHP 5.2.0中引入。
答案 1 :(得分:0)
查看http://php.net/manual/en/features.file-upload.post-method.php
您声明$ image的地方应该是$_FILES['sfile']['tmp_name'];
上传文件存储在服务器上的文件的临时文件名。