Php 正在尝试上载图像。但我会犯错误
我试图上传一个图像,但我得到了错误。这是到目前为止我的代码Php 正在尝试上载图像。但我会犯错误,php,Php,我试图上传一个图像,但我得到了错误。这是到目前为止我的代码 <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = ""; //Taken out for stackoverflow question $conn = mysqli_connect($servername, $username, $password, $dbname);
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = ""; //Taken out for stackoverflow question
$conn = mysqli_connect($servername, $username, $password, $dbname);
$dir = "ads/";
$file = $dir . basename($_FILES['cf']['name']);
$uploadSuccess = 1;
$imageFileType = pathinfo($file, PATHINFO_EXTENSION);
if (!$conn)
{
echo 'Could not connect';
}
else
{
if (!empty($_FILES['cf'] && $_POST['category']))
{
$filesize = getimagesize($_FILES['cf']['tmp_name']);
if ($filesize != false)
{
if (file_exists($file))
{
echo 'File already exists';
$uploadSuccess = 0;
}
if ($_FILES['cf']['size'] > 500000)
{
echo 'Cannot use that large of a file';
$uploadSuccess = 0;
}
if ($imageFileType != 'jpg' && $imageFileType != 'png' && $imageFileType != 'jpeg')
{
echo 'Only jpg, png, and jpeg files are allowed';
$uploadSuccess = 0;
}
if ($uploadSuccess == 0)
{
echo 'Sorry, your file was not uploaded';
}
else
{
if (move_uploaded_file($_FILES['cf']['tmp_name'], $file))
{
echo 'The file: '.basename($_FILES['cf']['name'])." has been uploaded";
}
else
{
echo 'Sorry, there was an error uploading your file';
}
}
}
else
{
$uploadSuccess = 0;
}
}
}
?>
那代码不起作用。我已经做了两天了。首先尝试将其输入数据库。现在是一个目录。下面是localhost给我的错误
您应该检查“ads/”目录是否存在以及您的web服务器用户是否对其具有写入权限。您应该检查“ads/”目录是否存在以及您的web服务器用户是否对其具有写入权限。您需要检查 如果文件夹存在 php代码:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = ""; //Taken out for stackoverflow question
$conn = mysqli_connect($servername, $username, $password, $dbname);
$rootPath = dirname(__FILE__);
$dir = $rootPath. DIRECTORY_SEPARATOR ."ads";
$file = 'ads'.DIRECTORY_SEPARATOR .basename($_FILES['cf']['name']);
$fileNewName = $dir.DIRECTORY_SEPARATOR.$_SERVER['REQUEST_TIME_FLOAT'].'_'.rand(1,9999) .'_'. basename($_FILES['cf']['name']);
$uploadSuccess = 1;
$imageFileType = pathinfo($file, PATHINFO_EXTENSION);
if (!$conn)
{
echo 'Could not connect';
}
else
{
if (!empty($_FILES['cf'] && $_POST['category']))
{
$filesize = getimagesize($_FILES['cf']['tmp_name']);
if ($filesize != false)
{
if (file_exists($fileNewName))
{
echo 'File already exists';
$uploadSuccess = 0;
}
if ($_FILES['cf']['size'] > 500000)
{
echo 'Cannot use that large of a file';
$uploadSuccess = 0;
}
if ($imageFileType != 'jpg' && $imageFileType != 'png' && $imageFileType != 'jpeg')
{
echo 'Only jpg, png, and jpeg files are allowed';
$uploadSuccess = 0;
}
if ($uploadSuccess == 0)
{
echo 'Sorry, your file was not uploaded';
}
else
{
if (!is_dir($dir)){
if (!mkdir($dir, 0777, true)) {
die('Sorry, failed to create folder'.$dir );
}
}
if (!is_writable($dir)) {
die( 'folder is not writeble'.dir);
}
if (move_uploaded_file($_FILES['cf']['tmp_name'], $fileNewName))
{
echo 'The file: '.basename($_FILES['cf']['name'])." has been uploaded";
}
else
{
echo 'Sorry, there was an error uploading your file';
}
}
}
else
{
$uploadSuccess = 0;
}
}
}
exit;
?>
您需要检查
如果文件夹存在
php代码:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = ""; //Taken out for stackoverflow question
$conn = mysqli_connect($servername, $username, $password, $dbname);
$rootPath = dirname(__FILE__);
$dir = $rootPath. DIRECTORY_SEPARATOR ."ads";
$file = 'ads'.DIRECTORY_SEPARATOR .basename($_FILES['cf']['name']);
$fileNewName = $dir.DIRECTORY_SEPARATOR.$_SERVER['REQUEST_TIME_FLOAT'].'_'.rand(1,9999) .'_'. basename($_FILES['cf']['name']);
$uploadSuccess = 1;
$imageFileType = pathinfo($file, PATHINFO_EXTENSION);
if (!$conn)
{
echo 'Could not connect';
}
else
{
if (!empty($_FILES['cf'] && $_POST['category']))
{
$filesize = getimagesize($_FILES['cf']['tmp_name']);
if ($filesize != false)
{
if (file_exists($fileNewName))
{
echo 'File already exists';
$uploadSuccess = 0;
}
if ($_FILES['cf']['size'] > 500000)
{
echo 'Cannot use that large of a file';
$uploadSuccess = 0;
}
if ($imageFileType != 'jpg' && $imageFileType != 'png' && $imageFileType != 'jpeg')
{
echo 'Only jpg, png, and jpeg files are allowed';
$uploadSuccess = 0;
}
if ($uploadSuccess == 0)
{
echo 'Sorry, your file was not uploaded';
}
else
{
if (!is_dir($dir)){
if (!mkdir($dir, 0777, true)) {
die('Sorry, failed to create folder'.$dir );
}
}
if (!is_writable($dir)) {
die( 'folder is not writeble'.dir);
}
if (move_uploaded_file($_FILES['cf']['tmp_name'], $fileNewName))
{
echo 'The file: '.basename($_FILES['cf']['name'])." has been uploaded";
}
else
{
echo 'Sorry, there was an error uploading your file';
}
}
}
else
{
$uploadSuccess = 0;
}
}
}
exit;
?>
它已存在。至于写权限。。。它是只读的。我改变了,但它仍然不起作用。给出相同的错误。它不断重置回只读。它存在。至于写权限。。。它是只读的。我改变了,但它仍然不起作用。给出相同的错误。它不断重置为只读。图片已上载。现在我如何更改名称?很可能有些人会将他们的广告命名为相同的名称。那么,我如何输入一个不同于原始上传的名称?是的,它正在上传。但名称现在是问题所在。添加代码:$file=$dir.DIRECTORY\u分隔符。md5(rand(199999).basename($_文件['cf']['name']);所以每个上传的文件都会有新的名字。你觉得可以吗?我应该在哪里添加它?图片已经上传。现在我该如何更改名称?很可能有些人会给他们的广告起相同的名字。那么,我如何输入一个不同于原始上传的名称?是的,它正在上传。但名称现在是问题所在。添加代码:$file=$dir.DIRECTORY\u分隔符。md5(rand(199999).basename($_文件['cf']['name']);所以每个上传的文件都会有新的名字。对你合适吗?我在哪里添加它?