2010-04-27 3 views
2

우선, 모든 SO 스레드를 체크 아웃하고 내 두뇌를 봤습니다. 나는 명백한 것을 놓치고 있어야합니다. 정말 도움이됩니다. 이것이 내가 가진 것입니다.왜 나를 uploadify 및 asp.net mvc 2 좋은 재생되지 않습니다?

UploadController.cs 내가 여기 실종 무엇 업로드

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
<title>ITS A TITLE </title> 
    <script src="../../Content/jqueryPlugins/uploadify/jquery-1.3.2.min.js" type="text/javascript"></script> 
    <script src="../../Content/jqueryPlugins/uploadify/swfobject.js" type="text/javascript"></script> 
    <script src="../../Content/jqueryPlugins/uploadify/jquery.uploadify.v2.1.0.min.js" type="text/javascript"></script> 


<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#uploadify').fileUpload({ 
      'uploader': '../../Content/jqueryPlugins/uploadify/uploadify.swf', 
      'script': '/Upload/Processed', 
      'folder': '/uploads', 
      'multi': 'true', 
      'buttonText': 'Browse', 
      'displayData': 'speed', 
      'simUploadLimit': 2, 
      'cancelImg': '/Content/Images/cancel.png' 
     }); 
    }); 
</script> 
</head> 
<body> 
<input type="file" name="uploadify" id="uploadify" /> 
<p><a href="javascript:jQuery('#uploadify').uploadifyClearQueue()">Cancel All Uploads</a></p> 
</body> 

    </html> 

에 대한

using System.Web; 
using System.Web.Mvc; 

namespace NIMDocs.Controllers 
{ 
    public class UploadController : Controller 
    { 
     public ActionResult Index() 
     { 
      return View(); 
     } 


     public string Processed(HttpPostedFileBase FileData) 
     { 
      // DO STUFF 

      return "DUHR I AM SMART"; 
     } 

    } 
} 

색인? 나는 uploadify의 "업 로더"옵션에 대해 모든 경로 순열을 시도했다. 절대 경로, '/'접두사 등

이것이 내가 본 것입니다. alt text

그리고 여기에 디렉토리 구조가 있습니다. alt text

답변

4

당신은 Procssed 가공 철자하고, 따라서 당신이 '스크립트'공격하지 않을 것이다 : '/ 업로드/가공',

변경

public string Procssed(HttpPostedFileBase FileData) 
{ 
     // DO STUFF 
     return "DUHR I AM SMART"; 
} 

public string Processed(HttpPostedFileBase FileData) 
{ 
     // DO STUFF 
     return "O SMART ONE HAS SPOKEN"; 
} 

편집

이 코드는 자바 스크립트 호출 (Processed)와 메서드 정의 사이에서 변화 "가공"의 대신

<body> 
<input id="fileInput" name="fileInput" type="file" /> 
<script type="text/javascript">// <![CDATA[ 
    $(document).ready(function() { 
     $('#fileInput').uploadify({ 
      'uploader': '../../Content/jqueryPlugins/uploadify/uploadify.swf', 
      'script': '/Upload/Processed', 
      'cancelImg': 'cancel.png', 
      'auto': true, 
      'folder': '/uploads' 
     }); 
    }); 
// ]]> 
</script> 
</body> 
+0

좋은 캐치로 설정했지만, 나는 아직도 운을 가지고 있지 않다 . 원래 게시물에 도움이 될 수있는 몇 가지 수정 사항을 추가했습니다. 감사 위의 편집을 시도 – bdd

+1

- 나를 위해 잘 작동 (이를 새에 업로드 된 파일을 볼 수 있습니다) 공공 문자열 가공 (HttpPostedFileBase FILEDATA) { HttpPostedFileBase이를 새 = FILEDATA; "DUHR I AM SMART"을 (를) 반환하십시오. } –

+0

굉장합니다. 정확히 내가 뭘 잘못하고 있었 니? 후행]]>? 나는 너에게 충분히 감사 할 수 없다. 당신이 괜찮 으면 .../uploads에 실제로 문서를 업로드하는 것을 업로드하는 경우 당신에게 또 다른 빠른 질문이 있습니까? 그렇다면 로컬 디렉토리의 어디에 있습니까? – bdd

2

맞춤법을 당신의 JQuery와 스크립트 코드 블록과 HTML 입력을 제거하고 사용 (Procssed). 그게 부수적 인가요?

+0

예 실제로 부수적입니다. 컨트롤러 이름을 여러 번 변경하여 저를 지나쳤습니다. – bdd

0

나는 잘 모르겠지만, 기존의 ASP ASP.net의 웹 양식에서 양식에 enctype은 다중/폼 데이터

<form enctype='multipart/form-data'> 
<input type='file'> 
<input type='Submit'> 
</form>