首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载资源失败:服务器响应状态为405 (方法不允许)

加载资源失败:服务器响应状态为405 (方法不允许)
EN

Stack Overflow用户
提问于 2014-10-06 18:43:45
回答 1查看 10.5K关注 0票数 0

早上好。

在过去的几天里,我做了大量的研究,但似乎仍然无法解决以下错误:

“加载资源失败:服务器响应状态为405 (方法不允许) http://localhost:35913/Scripts/upload.php

文件实际上位于这个位置,因为如果我转到URL,它就会下载PHP文件。

试着用filedrop.js来完成。需要拖放excel文件,获取昵称的第一列,并让它们自动上传到网格视图。

upload.php:

代码语言:javascript
复制
<?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页面:

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-06 18:49:18

正如您所说的the file is in fact at this location because if I go to the URL it downloads the PHP file.,这意味着PHP没有被执行,而是作为简单文件下载。要使其可执行,首先您必须将其放到Apache服务器上,然后尝试该URL。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26222702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档