2

DotNetNuke 7 用のモジュールを開発しています。カタログのエントリのサムネイル画像をアップロードできるようにしたいと考えています。モジュールの編集ビューで場所のコントロールを管理し、ファイルをアップロードして選択しましたが、プロジェクトをビルドすると次のエラーが発生します。

C:\dnn\dotnetnuke\DesktopModules\EventCatalog\Edit.ascx.designer.cs(103,38,103,41): エラー CS0234: タイプまたは名前空間名 'Web' が名前空間 'DotNetNuke' に存在しません (見つからない場合アセンブリ参照?)

また、バックエンドで選択したファイルを取得して、URL をデータベースに保存する方法がわかりません。コントロールの ID を入力すると、VS はそれを認識しますが、インテリセンスは可能なオプションとして手がかりを提供しません。

上記のエラーを修正する方法を教えてください。また、可能であれば、このコントロールの概要/チュートリアルを教えてください。かなりの量のグーグルを実行しましたが、何も見つかりませんでした。

4

2 に答える 2

1

まず、DotNetNuke.Web へのアセンブリ参照をプロジェクトに追加する必要があります。それができたら、おそらくインテリセンスの欠如にも役立つでしょう。

選択した URL を操作する主な方法は、FileIDプロパティ経由のようです。コントロール自体が、ファイルを選択した場所に保存することを管理しますFolderPath(これは、ユーザーが変更できるものである場合とそうでない場合があります)。

しかし、その通りです。コントロールの使用方法に関する優れたリソースはありません。おそらく DotNetNuke コア コードを調べて、コアがコントロールをどのように使用するかを確認するのが最適な「チュートリアル」です。

于 2013-03-01T16:17:36.297 に答える
0

組み込みの dnn アップロード コントロールは、ファイルを dnn ファイル システムにアップロードするために特別に設計されていますが、正直なところ、操作がかなり面倒です。

ファイルで何をしたいのかについて多くの仮定を立て、そのプロセスの一部として、新しいファイルを dnn ファイル システム インデックスに自動的に登録します。

また、サムネイルのアップロードやそのような派手なものには理想的ではありません.ファイルサイズの管理やスケーリングやトリミングの機能がないためです.

これに加えて、アップロードされたファイルを実際に保存する場所に関しては、独自の考えが少しあります。つまり、より簡単に制御できるサードパーティのアップローダーを見る方が良いかもしれません.

FWIW - すべての dnn インストールでインストールされる te​​lerik asyn アップロード ライブラリのフル バージョンがあります - 手動でセットアップする必要がありますが、それほど難しくありません。

<dnn:DnnAsyncUpload></dnn:DnnAsyncUpload>はマークアップの基本構造であり、機能的には<telerik:RadAsyncUpload></telerik:RadAsyncUpload>

ここに文書化されています http://www.telerik.com/help/aspnet-ajax/asyncupload-overview.html

dnn ファイル ピッカーを使用したい場合は、このすべてのことを言いましたが、このコードを使用すると、dnn がファイルをアップロードしたファイル オブジェクトも見つけることができます。

String thisURL = "";
String thisPHYSICAL = "";
Int32 itest001 = thisControl001.FileID;
if ( itest001 > 0 )
{
    var thisFILE = (DotNetNuke.Services.FileSystem.FileInfo)FileManager.Instance.GetFile(itest001);
    thisURL = FileManager.Instance.GetUrl(thisFILE );
    thisPHYSICAL = thisURL.PhysicalPath;
}

thisURLウェブサイトのドメインに関連する URL が含ま thisPHYSICALれます サーバー上のファイルの物理的な場所が含まれます。

于 2013-04-06T08:55:04.843 に答える