2012-03-20 15 views
0

うまくいけば、nopCommerceフォーラムが私の投稿に沈黙しているので、私はここでいくつかの進展を得ることができたらうれしいです。私の現在の状況は、私たちが店内に持っている各製品について、私たち(管理者)は特定の文書をアップロードして、製品の詳細セクションを閲覧しているときにリンクとダウンロードを介してその文書をエンドユーザーに見せる必要があるということです。nopCommerce 2.40アドミニストレーションプロダクト追加追加

私はこのプロジェクトをチョップし、最初に管理領域からアップロード機能を開発しようと考えました。

他の誰かがnopCommerceを助けることができますが、それを知らない場合は、ASP.NET MVC 3プロジェクトです。既にnopCommerceをお持ちの方は、ナビゲートして特定のファイルにコードを追加する方法をご覧ください。

1.How製品編集にタブを追加するには:

a.Inside Nop.Admin

ビューへi.Navigate - > _CreateOrUpdate.cshtml

b.Addタブパネルライン24の後ライン上の

x.Add().Text(T("Admin.Catalog.Products.ProductDocuments").Text).Content(TabProductDocuments().ToHtmlString()); 

c.Create 'TabProductDocuments' ヘルプ法772

@helper TabProductDocuments() 
{ 
if (Model.Id > 0) 
{ 
<h2>Product Documents</h2> 
<form action="" method="post" enctype="multipart/form-data"> 
<label for="file">Filename:</label> 
<input type="file" name="file" id="file" /> 
<input type="submit" /> 
</form> 
} 
else 
{ 
@T("Admin.Catalog.Products.ProductDocuments.SaveBeforeEdit") 
} 
} 

d.Change ProductDocumentsController.csに、より簡単なコードは:

public class ProductDocumentsController : BaseNopController 
{ 
[HttpPost] 
public ActionResult Index(HttpPostedFileBase file) 
{ 
if (file.ContentLength > 0) 
{ 
var fileName = Path.GetFileName(file.FileName); 
var path = Path.Combine(HttpContext.Server.MapPath("../Content/files/uploads"), fileName); 
file.SaveAs(path); 
} 
return RedirectToAction("Index"); 
} 

さて、私が経験しています問題がある:私はプロダクトの編集で、今のタブを見ることができますが、私は、ファイルをアップロードすることはできません。クエリを送信しますが、ページを更新してProduct Listに戻ります。ファイルはアップロードされません。可能であれば、私が指定したパスにファイルを正しくアップロードしようとしてください。ご協力いただきありがとうございます。

アップロードプロジェクトを最初から試してみましたが、正常に動作しますが、何らかの理由でここだけで動作していません。

答えて

1

おそらくフォームのアクションパラメータにアクションURLが必要です。

<form action="/Admin/Product/Upload/555" method="post" enctype="multipart/form-data"> 

、おそらく少し遅れ

[HttpPost] 
public ActionResult Upload(int productId, HttpPostedFileBase file) 
{ 
    if (file.ContentLength > 0) 
    { 
     var fileName = Path.GetFileName(file.FileName); 
     var path = Path.Combine(HttpContext.Server.MapPath("../Content/files/uploads"), fileName); 
     file.SaveAs(path); 
     //attach the file to the product record in the database 
    } 
    return RedirectToAction("Index"); 
}