Php 无法查看上载到服务器上文件夹的图像
您好,我在服务器上载文件时遇到问题。这是我的代码:Php 无法查看上载到服务器上文件夹的图像,php,mysql,Php,Mysql,您好,我在服务器上载文件时遇到问题。这是我的代码: <?php session_start(); $user=$_SESSION['user_level']; Check if a file has been uploaded if(isset($_FILES['fileToUpload'])) {
<?php
session_start();
$user=$_SESSION['user_level'];
Check if a file has been uploaded
if(isset($_FILES['fileToUpload'])) {
// Make sure the file was sent without errors
if($_FILES['fileToUpload']['error'] == 0) {
// Connect to the database
$dbLink = new mysqli('$host', '$username', '$pass', '$tbl_name');
if(mysqli_connect_errno()) {
die("MySQL connection failed: ". mysqli_connect_error());
}
// Gather all required data
//$id= mysql_insert_id();
$name = $dbLink->real_escape_string($_FILES['fileToUpload']['name']);
$mime = $dbLink->real_escape_string($_FILES['fileToUpload']['type']);
$data = $dbLink->real_escape_string
(file_get_contents($_FILES['fileToUpload']['tmp_name']));
$size = intval($_FILES['fileToUpload']['size']);
// Create the SQL query
$query = "
INSERT INTO files (email,name,type,size,content)
VALUES ('$user','$name', '$mime', $size, '$data')";
// Execute the query
$result = $dbLink->query($query);}}
?>
<?php
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
"/home/u152912911/public_html/upload" . $_FILES["fileToUpload"]["name"]);
?>
<?php
if ($_FILES["fileToUpload"]["error"] > 0)
{
echo "Apologies, an error has occurred.";
echo "Error Code: " . $_FILES["fileToUpload"]["error"];
}
else
{
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
"/home/u152912911/public_html/upload" . $_FILES["fileToUpload"]
["name"]);
}
if (($_FILES["fileToUpload"]["type"] == "image/DOC")
|| ($_FILES["fileToUpload"]["type"] == "image/jpeg")
|| ($_FILES["fileToUpload"]["type"] == "image/png" )
&& ($_FILES["fileToUpload"]["size"] < 10000))
{
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
"/home/u152912911/public_html/upload" . $_FILES["fileToUpload"]["name"]);
ECHO "Files Uploaded Succesfully";
echo'<script type="text/javascript">
window.location.href ="resume2.php"
</script>';
}
else
{
}
echo "Your Resume was Successfully Upload";
?>
您在上传
后缺少一个尾随斜杠/
。将其更改为:
"/home/u152912911/public_html/upload/" . $_FILES["fileToUpload"]["name"]
实际上,文件被保存为public\u html
目录中前缀为upload
的文件名
如果可能,您应该使用相对路径来实现可移植性,很有可能
"upload/" . $_FILES["fileToUpload"]["name"]
…就足够了
然而
您不应该像这样直接使用$\u文件[“fileToUpload”][“name”]
。考虑一下如果用户把字符串<代码>…/index .php < /代码>作为文件名,用户将能够覆盖你的<代码> index .php < /C>文件,会发生什么。另外,如果两个用户上传了一个名为“代码>图片.jpg p/代码>的文件,会发生什么情况?第二次上传会覆盖第一个。
相反,您应该为自己创建的文件使用一个名称——像这样依赖用户输入是不安全的
您在上传
后缺少一个尾随斜杠/
。将其更改为:
"/home/u152912911/public_html/upload/" . $_FILES["fileToUpload"]["name"]
实际上,文件被保存为public\u html
目录中前缀为upload
的文件名
如果可能,您应该使用相对路径来实现可移植性,很有可能
"upload/" . $_FILES["fileToUpload"]["name"]
…就足够了
然而
您不应该像这样直接使用$\u文件[“fileToUpload”][“name”]
。考虑一下如果用户把字符串<代码>…/index .php < /代码>作为文件名,用户将能够覆盖你的<代码> index .php < /C>文件,会发生什么。另外,如果两个用户上传了一个名为“代码>图片.jpg p/代码>的文件,会发生什么情况?第二次上传会覆盖第一个。
相反,您应该为您自己创建的文件使用一个名称-像这样依赖用户输入是不安全的。您忘记了斜杠:
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
"/home/u152912911/public_html/upload" . $_FILES["fileToUpload"]["name"]);
应该是
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
"/home/u152912911/public_html/upload/" . $_FILES["fileToUpload"]["name"]);
另外,请检查返回值是否成功,不要假设它成功。您忘记了斜杠:
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
"/home/u152912911/public_html/upload" . $_FILES["fileToUpload"]["name"]);
应该是
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
"/home/u152912911/public_html/upload/" . $_FILES["fileToUpload"]["name"]);
另外,检查返回值是否成功,不要假设它。请检查为存储文件的文件夹提供的权限。请检查为存储文件的文件夹提供的权限。如果它在本地主机上工作正常,并且在联机测试中出现问题,请要求服务器主机将文件夹权限更改为777。如果在本地主机上工作正常,在线测试中出现问题,然后要求服务器主机将文件夹权限更改为777。您可能没有将文件上载到该目录的正确权限。如果您在windows上,请尝试将上载目录的权限更改为777。请检查您是否有足够的权限修改文件夹。您可能没有将文件上载到该目录的正确权限。如果您在windows上,请尝试将上载目录的权限更改为777。请检查您是否有足够的权限修改该文件夹。谢谢!它现在正在工作!:)我也会考虑你的建议。非常感谢。它现在正在工作!:)我也会考虑你的建议。