2011-07-26 7 views
12

私はいくつかのクライアントに対してPHPベースのアップロードサービスを構築しています。私はアップロード時にファイルの進行状況を見ることができるように、私はSWFUploadを使用しています。私はそれをかなり構築しましたが、私たちが一般にリリースする前に最後の問題に挑戦しています。リソースフォークを使用したHTTPアップロード

多くのお客様(ほとんどすべて)がMacベースで、InDesignファイル、フォント、Illustratorファイルなどのファイルをアップロードしています。ほとんどの場合、画像ファイルは大丈夫ですが、 Type 1 Fonts)、リソースフォークが失われているためファイルが壊れてしまいます。

私はこれがなぜ起こっているのか理解していますが(マルチフォークシステムからシングルフォークシステムへの移行)、わかりやすい解決策が見つかりません。私の研究では、私が今までに見つけた最良の答えは「ユーザーに圧縮させる」ことです。私はそのことを知っていますが、クライアントの意見では、送信しようとしているすべてのファイルを圧縮するように要求するのは不合理です。

これらのリソースフォークを有効に保つための優れたソリューションはありますか?もちろん、私はストレートjavascript/phpですが、フラッシュベースまたは(少なくとも好ましくは)Javaベースの何かのために解決するソリューションを好むでしょう。新しいソリューションのための

私の唯一の要件は次のようになります。

  • ビューのアップロードの進行状況
  • ユーザーが手動でファイル
  • ここ

を圧縮する必要はありませんすることは、私のシステム

をに関するいくつかの情報です
  • 標準LAMPインストールを実行するUbuntu 10.10サーバー
  • PHP5
  • SWFUploadの(最新のバージョンをあるWTV)
+1

...現在のブラウザでそれを有効にするオプションがあるかどうかかかわらず、知りません。 ...現在のメールクライアントは、まだ通常のアップロード(なしSWFUploadのなど)で起こるどんな事 – Yahia

+0

チェックのこの種のサポートを持っている - おそらくブラウザはPOST中に別のMIMEの一部としてリソースフォークを送信します... – Yahia

答えて

6

アップロードファイルを処理します。ブラウザーと基礎となるOSがこの手順でフォークを処理できない場合(アップロード用のファイルモデルに何かのファイルをマップする)、システムアーキテクチャーによって得られるものに縛られます。

Resource fork:リソースフォークは、データフォーク内に格納されている非構造化データと共に、構造化データをファイルに格納するために使用されるMac OSオペレーティングシステムの構成です。リソースフォークは、アイコン、ウィンドウの形状、メニューとその内容の定義、アプリケーションコード(マシンコード)などの特定の形式で情報を格納します。

もしそれがあなたにとって邪魔になるのであれば、間違った分野を選んでしまったかもしれません。体系的な罫線が走っていれば、できることはあまりありません。あなたがグラフィックデザイナーとMacユーザーのために働いていても。

swfupload would need a feature to deal with forks。そのためには、flash would need a feature to deal with forks。そのためにはthe browser would eventually need a feature to deal with forks。等々。

このチェーンの次に、別の質問が残っています:どのようにフォークを扱うか?アップロードは1つのファイルをバイナリデータのチャンクにマップするだけなので、フォークもどのようにマッピングするのですか?追加しますか?追加ファイルを追加しますか?

技術的なレベルでは、これは簡単に解決できるようには聞こえません。ファイル入力チェーン内のすべてのコンポーネントとシステムは、一般的にはサポートされていない機能をサポートする必要があります。

あなたが存在していないユーザーに何かを提供することができないように、あなたが行うことができる唯一のことは、あなたのアプリケーションがより使いやすいか、ユーザーフレンドリーな作りです。例えば。 (例えば、ユーザがアップロードのためにタイプ1ファイルを選択したときに、フォークを選択することを彼/彼女に思い出させるために)適切なノートを適切なタイミングで提供することによって、ユーザーとのコミュニケーションは助けになりますが、ユーザーは理解している言語で話す必要があることに留意してください。ユーザー:

は、だから、特定の種類のファイルは、フォークを持って、それを解決することができます誰かに問題を解決することがわかっている場合。できません。

0

あなたは、進行状況を監視するためにSWFUploadのを使用する必要はありません。

はここでこのことを示すいくつかのファイルです:https://github.com/senica/Booger/tree/master/assets/js/jquery-upload

それは非常によく文書化されていないが、それは基本的にJavaScriptでファイルをアップロードするためwebkitSlice機能を使用しています。コールバック関数を使用して、ファイルの進行状況を表示することができます。

これではJavaScript/PHPソリューションになります。これらは具体的には、1つのファイル内のすべてのフォークを含むようにエンコードされた...アップルはマックバイナリとのBinHexとAppleSingleのと呼ばれるファイル形式を持っていた古代で

関連する問題