2014-10-06 457 views
0

早上好。加載資源失敗:服務器響應狀態爲405(方法不允許)

我已經做了一噸的研究在過去的幾天裏,仍然不能似乎解決了以下錯誤:

「無法加載資源:服務器與405狀態響應(不允許的方法)http://localhost:35913/Scripts/upload.php

該文件實際上是在這個位置,因爲如果我去URL它下載PHP文件。

試圖完成使用filedrop.js。需要拖放excel文件並獲得第一列暱稱,並讓它們自動上傳到gridview。

upload.php的:

<?php 
/*! 
    FileDrop Revamped - server-side upload handler sample 
    in public domain | http://filedropjs.org 

*** 

    This is an example of server-side script that handles both AJAX and IFrame uploads. 

    AJAX upload provides raw file data as POST input while IFrame is a POST request 
    with $_FILES member set. 

    Result is either output as HTML with JavaScript code to invoke the callback 
    (like JSONP) or in plain text if none is given (it's usually absent on AJAX). 
*/ 

// If an error causes output to be generated before headers are sent - catch it. 
ob_start(); 

// Callback name is passed if upload happens via iframe, not AJAX (FileAPI). 
$callback = &$_REQUEST['fd-callback']; 

// Upload data can be POST'ed as raw form data or uploaded via <iframe> and <form> 
// using regular multipart/form-data enctype (which is handled by PHP $_FILES). 
if (!empty($_FILES['fd-file']) and is_uploaded_file($_FILES['fd-file']['tmp_name'])) { 
    // Regular multipart/form-data upload. 
    $name = $_FILES['fd-file']['name']; 
    $data = file_get_contents($_FILES['fd-file']['tmp_name']); 
} else { 
    // Raw POST data. 
    $name = urldecode(@$_SERVER['HTTP_X_FILE_NAME']); 
    $data = file_get_contents("php://input"); 
} 

// Output message for this demo upload. In your real app this would be something 
// meaningful for the calling script (that uses FileDrop.js). 
$output = sprintf('%s; received %s bytes, CRC32 = %08X, MD5 = %s', $name, 
        number_format(strlen($data)), crc32($data), strtoupper(md5($data))); 

// In FileDrop sample this demonstrates the passing of custom ?query variables along 
// with an AJAX/iframe upload. 
$opt = &$_REQUEST['upload_option']; 
isset($opt) and $output .= "\nReceived upload_option with value $opt"; 

if ($callback) { 
    // Callback function given - the caller loads response into a hidden <iframe> so 
    // it expects it to be a valid HTML calling this callback function. 
    header('Content-Type: text/html; charset=utf-8'); 

    // Escape output so it remains valid when inserted into a JS 'string'. 
    $output = addcslashes($output, "\\\"\0..\x1F"); 

    // Finally output the HTML with an embedded JavaScript to call the function giving 
    // it our message(in your app it doesn't have to be a string) as the first parameter. 
    echo '<!DOCTYPE html><html><head></head><body><script type="text/javascript">', 
     "try{window.top.$callback(\"$output\")}catch(e){}</script></body></html>"; 
} else { 
    // Caller reads data with XMLHttpRequest so we can output it raw. Real apps would 
    // usually pass and read a JSON object instead of plan text. 
    header('Content-Type: text/plain; charset=utf-8'); 
    echo $output; 
} 

aspx頁面:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
<div id="zone3"> 
    <p class="legend">Drop a file inside...</p> 
</div> 

     <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"> </script> 
     <script type="text/javascript" src="Scripts/filedrop.js"></script> 
      <script type="text/javascript"> 
       var zone = new FileDrop('zone3') 

       zone.event('send', function (files) { 
        files.each(function (file) { 
         // Listen for errors: 
         file.event('error', function (e, xhr) { 
          alert(xhr.status + ', ' + xhr.statusText) 
         }) 

         file.sendTo('Scripts/upload.php') 
        }) 
       }) 

     </script> 

回答

2

正如你所說the file is in fact at this location because if I go to the URL it downloads the PHP file.,這意味着PHP文件是沒有得到執行,而不是下載爲簡單的文件。爲了使它可執行,首先你必須把它放到Apache服務器上,然後嘗試使用該URL。

1

問題是sendTo('Scripts/upload.php')必須改爲sendTo('')。

相關問題