0

我正在我的服务器上制作一个应用程序,用户通过一些结合 javascript 的 HTML 上传图像。

用户通过

<form action="uploadimage.php" method="post"
enctype="multipart/form-data">
<label for="file">Filnavn:</label>
<input type="file" name="file" id="file" value="100000" />

然后javascript背后的重点是验证用户图像

if(picture_headline.value == "" || picture_uploaded.value == "" || !ischecked)
{
   // Don't execute, stay on same site
}
else
{
   // execute php and upload image
}

php是上传图片的php脚本

<?php 
// The file is being uploaded into the folder "upload"
$target = "/navnesutten.eu/facebook/uploads/"; 
// add the original filename of our target path
$target = $target . basename( $_FILES['uploaded']['name']) ; 
$ok=1; 
// Moves the uploaded file into correct folder
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) 
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded";
} 
else {
echo "Sorry, there was a problem uploading your file.";
}
?> 

我必须说我在这里有点困惑,因为我现在只使用 html、php 和 javascript 几天。

我是完全关闭还是什么?

我在网上找到了一些“简单”的例子,我通过cuteFTP放在我的服务器上,但每次我按下上传,网站只是把我送到.php文件并说该网站不存在。

4

2 回答 2

1

就像 Boann 指出的那样,您正在尝试访问 PHP 代码中不存在的文件(“uploaded”和“uploadedfile”而不是“file”(这是您在 HTML 表单中命名该字段的名称))。

但是关于“从 JavaScript 运行 PHP”:你不必这样做。如果表单无效,JavaScript 应该只返回 false。如果它是有效的,你不需要做任何事情并且表单会提交,然后运行你的 PHP 脚本:

form.onsubmit = function () {
    if (!formIsValid()) {
        return false;
    }
};

如果表单无效,它将不会提交(该return false位(您可以使用event.preventDefault())),如果它有效的,则不会发生任何事情并且表单将执行它所做的(即提交数据到服务器)。

于 2012-08-27T14:02:09.613 回答
0

每个数组键$_FILES对应name于表单中文件字段的属性,因此要匹配您的表单,它应该是'file'而不是'uploaded'or 'uploadedfile'

<?php 
// The file is being uploaded into the folder "upload"
$target = "/navnesutten.eu/facebook/uploads/"; 
// add the original filename of our target path
$target = $target . basename( $_FILES['file']['name'] ) ; 
$ok=1; 
// Moves the uploaded file into correct folder
if(move_uploaded_file($_FILES['file']['tmp_name'], $target)) 
{
echo "The file ". basename( $_FILES['file']['name']). " has been uploaded";
} 
else {
echo "Sorry, there was a problem uploading your file.";
}
于 2012-08-27T13:53:40.880 回答