2012-08-27 2 views
0

사용자가 자바 스크립트와 결합 된 일부 HTML을 통해 이미지를 업로드하는 서버에서 응용 프로그램을 만들고 있습니다.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" /> 

자바 스크립트 뒤에 포인트를 통해 컴퓨터에서 이미지를 발견, PHP는이 업로드 이미지 PHP 스크립트

입니다

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

사용자의 이미지를 확인하는 것입니다

<?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_ (프로그래밍))를 사용해야합니다. –

답변

0

$_FILES의 각 배열 키 때문에 양식과 일치하는 것이 'file'보다는 'uploaded' 또는 'uploadedfile'을해야한다, 형태의 파일 필드의 name 속성에 해당합니다

<?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"형식의 필드 이름) 인 "file"대신 "uploaded"및 "uploadedfile"에 액세스하려고합니다.

그러나 "JavaScript를 실행중인 PHP"와 관련하여 : 꼭 할 필요는 없습니다. JavaScript는 양식이 유효하지 않은 경우 만 반환해야합니다. 이 유효 있다면 당신은 아무것도 할 필요가 없습니다 양식은 PHP 스크립트 실행 차례로, 제출 :합니다 (return false 비트 (당신이 event.preventDefault()을 사용할 수있는 양식이 제출되지 않습니다 무효 인 경우

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

을 대신)), 이면 아무 일도 일어나지 않으며 양식은 서버가 수행하는 작업 (즉, 서버에 데이터 제출)을 수행합니다.

+0

작성한 코드. 그것은 내 코드에서 필요한 것입니까? 내 코드는 if else로 끝납니다. false를 반환 할 경우 else true를 반환합니다. upload_file.php가 실제로 실행됩니까? 어딘가에 어떤 코드가 필요하지 않습니까? – Pavenhimself

+0

폼이 스크립트를 가리키고있는 동안 ('action = "upload_file.php"') JS가 false를 리턴하지 않는 한 폼 데이터는 스크립트로 보내질 것입니다. 양식이 유효하지 않은 경우에만해야합니다. 폼이 유효 할 때 (당신의'else') JS에서 아무것도 할 필요가 없습니다. 양식은 정상적으로 제출하면됩니다. upload_file.php에서 양식 무효를 확인해야합니다. 왜냐하면 사람들은 JS를 비활성화 할 수 있기 때문입니다. – powerbuoy

관련 문제