2012-08-27 23 views
0

我在我的服务器上制作了一个应用程序,用户通过一些HTML结合javascript来上传图像。在JavaScript中运行PHP

用户通过

<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,ph p和javascript几天。

我完全关闭或什么?

我在网上发现了一些“简单”的例子,我通过cuteFTP把它放在我的服务器上,但是每次我点击上传,网站都会把我发送到.php文件,并说网站不存在。

+9

Java!= Javascript。 –

+0

你有一个PHP服务器设置和运行? – Matt

+0

你需要使用[AJAX](http://en.wikipedia.org/wiki/Ajax_(programming))来获得你想要的。 –

回答

0

$_FILES每个数组键对应于与表单文件域的name属性,因此,以配合您的形式,它应该是'file'而非'uploaded''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."; 
} 
+0

非常感谢:) – Pavenhimself

1

像Boann指出你”重试尝试访问您的PHP代码中不存在的文件(“上传”和“上传文件”而不是“文件”(这是您在HTML表单中命名的字段))。

但关于“从JavaScript运行PHP”:您不必。 JavaScript应该只有如果表单无效则返回false。如果它是有效的,你不需要做任何事情,形式将提交反过来运行PHP脚本:

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

如果表单无效也不会提交(return false位(你可以使用event.preventDefault()而不是)),如果它有效,什么都不会发生,表单将执行它的操作(即将数据提交给服务器)。

+0

你写的代码。这是我的代码中需要的东西吗?我的代码以if else结尾。 如果将返回false 否则将返回true 这会真的执行upload_file.php吗? 我不需要一些代码来实现这种情况吗? – Pavenhimself

+0

只要你的表单指向你的脚本('action =“upload_file.php”'),表单数据将被发送到你的脚本,除非JS返回false。只有当表单无效时才应该这样做。当表单有效时(你的'else')什么都不需要从JS完成。表单只需要正常提交。你一定要检查你的upload_file.php表单无效,因为人们可以禁用JS。 – powerbuoy