无法使用php上传javascript文件
cannot upload a file in javascript using php
我正在尝试使用php上传文件。但是会生成以下错误。Error: A problem occurred during file upload!
。我使用的是ubuntu操作系统。我认为错误是在试图保存该文件时产生的。我使用了以下代码
<html>
<body>
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
Choose a file to upload: <input name="uploaded_file" type="file" />
<input type="submit" value="Upload" />
</form>
</body>
</html>
<?php
//Сheck that we have a file
if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0)) {
//Check if the file is JPEG image and it's size is less than 350Kb
$filename = basename($_FILES['uploaded_file']['name']);
$ext = substr($filename, strrpos($filename, '.') + 1);
if (($ext == "jpg") && ($_FILES["uploaded_file"]["type"] == "image/jpeg") &&
($_FILES["uploaded_file"]["size"] < 350000)) {
//Determine the path to which we want to save this file
$newname = dirname(__FILE__).'/upload/'.$filename;
//Check if the file with the same name is already exists on the server
if (!file_exists($newname)) {
//Attempt to move the uploaded file to it's new place
if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'],$newname))) {
echo "It's done! The file has been saved as: ".$newname;
} else {
echo "Error: A problem occurred during file upload!";
}
} else {
echo "Error: File ".$_FILES["uploaded_file"]["name"]." already exists";
}
} else {
echo "Error: Only .jpg images under 350Kb are accepted for upload";
}
} else {
echo "Error: No file uploaded";
}
?>
这段代码的问题是什么?还是因为访问文件夹的文件权限?
查找错误发生的位置
<?php
$msg = '';
$upload_key = 'uploaded_file';
if (isset($_FILES[$upload_key])) {
try {
$error = $_FILES[$upload_key]['error'];
switch ($error) {
case UPLOAD_ERR_INI_SIZE:
throw new Exception('Exceeded upload_max_filesize');
case UPLOAD_ERR_FORM_SIZE:
throw new Exception('Exceeded MAX_FILE_SIZE');
case UPLOAD_ERR_PARTIAL:
throw new Exception('Incomplete file uploaded');
case UPLOAD_ERR_NO_FILE:
throw new Exception('No file uploaded');
case UPLOAD_ERR_NO_TMP_DIR:
throw new Exception('No tmp directory');
case UPLOAD_ERR_CANT_WRITE:
throw new Exception('Can''t write data');
case UPLOAD_ERR_EXTENSION:
throw new Exception('Extension error');
}
$finfo = new finfo(FILEINFO_MIME);
$name = $_FILES[$upload_key]['name'];
$tmp_name = $_FILES[$upload_key]['tmp_name'];
$size = $_FILES[$upload_key]['size'];
if ($size > 350000)
throw new Exception('Exceeded 350KB limit');
if (!is_uploaded_file($tmp_name))
throw new Exception('Not an uploaded file');
$type = $finfo->file($tmp_name);
if ($type === false)
throw new Exception('Failed to get MimeType');
if ($type !== 'image/jpeg; charset=binary')
throw new Exception('Only JPEG files available');
$new_name = dirname(__FILE__).'/upload/'.$name;
if (is_file($new_name))
throw new Exception("The file {$new_name} already exists");
if (!move_uploaded_file($tmp_name,$new_name))
throw new Exception('Failed to move uploaded file');
$msg = "File successfully uploaded as {$new_name}";
} catch (Exception $e) {
$msg = 'Error: '.$e->getMessage();
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Uploader</title>
</head>
<body>
<form enctype="multipart/form-data" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
<div><input type="hidden" name="MAX_FILE_SIZE" value="1000000" /></div>
<div>Choose a file to upload: <input name="uploaded_file" type="file" /></div>
<div><input type="submit" value="Upload" /></div>
</form>
<p>
<?php echo $msg.PHP_EOL; ?>
</p>
</body>
</html>
相关文章:
- 如何使用WCF服务和javascript表单post上传.doc文件
- 使用javascript将视频从我的android应用程序上传到youtube
- 如何使用Javascript上传给定路径的文件
- java,javascript签名的小程序(文件选择,ftp上传)安全性/套接字异常
- 数组上的多图像上传-Javascript/Jquery
- 用javascript上传web工作者
- 使用Ajax上传Javascript表单
- 使用javascript删除上传的文件
- 如何通过服务器上的Node从客户端JavaScript上传到谷歌云存储
- 带有预览和删除选项的图像上传-Javascript/Jquery
- 点击上传javascript/jquery之前显示图像
- 上传JavaScript代码包前后的站点性能差异
- 文件上传Javascript
- 上传Javascript中的图像大小缩小器
- 文件上传Javascript扩展管理
- 通过datauri和phpbase64解码上传javascript图像
- 上传JavaScript生成的图像到Django
- 无法使用php上传javascript文件
- internetexplorer9-上传Javascript文件
- 在网页上只上传javascript文件