function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
桃子 植田桃子 植田 

VisualforceとApexコントローラで、stlファイルをアップロードする方法

お世話になっております。
Apexで、".stl"という拡張子の3Dデータファイルが扱えるかの質問です。

現在Visualforceページからメモ&添付ファイルに、stlファイルをアップロードしようとしております。
しかし、<apex:inputFile>タグでstlファイルを選択はできるのですが、
アップロードしようとするとApex側で値がnullになってしまいます。

Excelやpngファイル等は正常にアップロードできます。
また、メモ&添付ファイルに直接手動でstlファイルをアップロードすることはできます。

Apexではstlファイルが扱えないということなのでしょうか?
また、Apexでsrlファイルを扱えないとしたら、
Visualforceからstlファイルをアップロードすることは不可能でしょうか?

ご存じの方いらっしゃいましたら、お知恵をお貸しいただけたら幸いです。
Taiki YoshikawaTaiki Yoshikawa
stlファイルのアップロードを試したことはないのですが、apexタグは簡単に実装できる反面実現できないことがあるタグでもあります。
ご記載頂いた下記の状況であればapex:inputFileの使い方が間違っているわけではなさそうです。
・Excelやpngファイル等は正常にアップロードできます。
・メモ&添付ファイルに直接手動でstlファイルをアップロードすることはできます

JavaScriptをつかってファイルアップロードを行う方法はいかがでしょうか。こちらで実現可能かは不明ですがもしかするとうまくいくかもしれません。開発は大変になるのですが、以前検証してみたときの内容をまとめたものがありますので共有致します。

http://tyoshikawa1106.hatenablog.com/entry/2016/02/09/015328

※ソースコードありましたのでDE組織などにアップして試して頂くのが良いかもしれません。
※基本的にそのまま本番環境でも動く作りにしているつもりですがあくまでサンプルコードになりますのでよろしくお願いいたします。
桃子 植田桃子 植田
Taiki Yoshikawa様
ご回答ありがとうございます。
やはり<apex:inputFile>タグでは厳しそうなのですね。

JavaScript使用のアドバイスありがとうございます。
参考にさせていただきます。

実は本来の目的といたしまして、
Sitesを使ったVisualforceページから、Salesforce上のDropboxにstlファイルをアップロードしようとしております。
前段階としてまず、Apexでstlファイルを「メモ&添付ファイル」にアップロードできるかを試しておりました。

後出しの質問で申し訳ないのですが、
JavaScriptでSalesforce上のDropboxにアップロードできるでしょうか?
Taiki YoshikawaTaiki Yoshikawa
Salesforce と連携しているDropboxということでしょうか。DropboxAPIを使った開発で対応可能かもせれません。私は経験が無いのですか、おそらくハードルは非常に高いです。

Sites ということですので外部の方が利用されるページだと思います。また3Dデータファイルということですので、不特定な利用者ではなくパートナー的な感じのユーザーの利用ではないでしょうか。

もしそうでしたらパートナーコミュニティの仕組みが活用できるかも知れません。パートナーコミュニティは外部の人がログインして一部情報にアクセスできる仕組みなのですが、標準のファイルアップロードの仕組みを利用することが可能です。
桃子 植田桃子 植田
Taiki Yoshikawa様
ご回答ありがとうございます。

>Salesforce と連携しているDropboxということでしょうか。
はい、その通りです。
DropboxAPIでの開発は検討しておりましたが、Taiki Yoshikawa様からしてもそんなに高いハードルなんですね…。
覚悟しておきます。

>不特定な利用者ではなくパートナー的な感じのユーザーの利用ではないでしょうか。
おっしゃられる通り、パートナーユーザの利用を目的としております。
しかし調査したところ、SalesforceコミュニティではどうやらDropboxのサポートがないようです。

昨日調査をしていてわかったことですが、
Salesforceのメールサービスを利用して、Salesforce組織宛てにメールを送信すれば、
メールに添付したstlファイルをApexで指定した「メモ&添付ファイル」に格納することができました。
そこで、Visualforceでメール送信フォームを作成し、
DropboxAPIを組み合わせることで目的の実現が可能かを現在調査しております。


ご多忙と思われる中、いつも丁寧なご返信感謝しております。
Taiki Yoshikawa様、ありがとうございました。
Taiki YoshikawaTaiki Yoshikawa
ハードルに関しては私がAPI開発の知見が無いので少し大げさに言ってしまったかもしれません。。
コミュニティではDropboxのサポートが無いのですね。。

こちらも利用可能かわからないのですが、AppExchangeという手段もあるかもしません。
https://appexchangejp.salesforce.com/appxListingDetail?listingId=a0N30000000pvx6EAA

リンクは一つの例で、最終更新が2015年でもう動かなくなっている可能性も高いのですが、こうした製品を利用することで開発せずに実現できるかもしれません。