
お疲れ様です。いつもお世話になっております。
on~~イベントで値をコピーするやり方でいけるのかもと思いつつ、
うまくイメージがまとまらないので質問させてください。
<input type="file">で、ファイルが選択されたら、その値(ファイルのパス)を同じフォーム内のhiddenにも持ちたいのです。
もっと具体的にいうと
hiddenに持った時、ファイル名の拡張子にかかわらず、拡張子を落として、[ファイル名]_thumnail.jpgとつけて、submitしたいのです。
<form action="xxx.php" method="post" enctype="multipart/form-data" name="myForm">
<input type="file" name="upfile" />
<input type="hidden" name="thumnail" />
</form>
document.myForm.upfile.value=document.myForm.thumnail.value;
みたいな感じでできるのでしょうか。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
以下のコードを参考にしてみてください。
------------------------------------------------------------
onchange='setHidden(this.form)'
------------------------------------------------------------
<script type="text/javascript">
<!--
function setHidden(f) {
var uf = f.upfile.value;
document.myForm.thumnail.value = uf.substring(0,uf.lastIndexOf(".")) + "_thumnail.jpg";
alert(document.myForm.thumnail.value);
}
// -->
</script>
------------------------------------------------------------
具体的なコードありがとうございます。
結局、質問の事項は(こちらの意図するようには)使えないということがわかったので、今回はせっかくのコードも利用できませんが、
勉強になります。
いつか必ず使うときがくるから、そのとき参考にさせていただきます。
No.5
- 回答日時:
> document.myForm.upfile.value=document.myForm.thumnail.value;
fileフィールドはreadOnlyですので、これはできません。
もし書き換えができてしまうと、
document.myForm.upfile.value='C\\個人情報が書かれてそうなファイル名';
document.myForm.submit();
ページを表示するだけで、何かのファイルがアップロードされる可能性があります。
<iframe>を隠しておいてtarget指定すると、送信されたことも気づけないかも知れません。
ファイル名を調べるだけなら
document.myForm.thumnail.value=document.myForm.upfile.value;
文字列として受け取れます。
fileフィールドの値は、ブラウザによってフルパスになったり、ファイル名だけになったりの違いがあります。
ブラウザ設定の「ファイルアップロードにはフルパスを含める」の設定にも依存するかも知れません。
やるのならhiddenフィールドの値がthumbnailで、fileフィールドはもとの画像のファイル名ってことにした方が良いと思います。
ふむ。
>やるのならhiddenフィールドの値がthumbnailで、fileフィールドはもとの画像のファイル名ってことにした方が良いと思います。
もとよりそのつもりでした。
すみません。書き方が悪かったみたいです。
レスありがとうございます。
No.4
- 回答日時:
因みにどんな頑張ってファイル名を加工しても
その方法だと画像そのものがアップロードできなくなるよ。
ファイル名加工後の名前を「付加」するしかないし、画面移行するとアップロードデータを持ち越せない筈。
結局サーバサイドでどうにかするかファイル名の候補だけ付加するって妥協案になるとおもうよ
No.2
- 回答日時:
formのonsubmitで実行させればよいかと思う。
<form ~ onsubmit="hoge(this)">
function hoge(F){
var pos=F.upfile.value.lastIndexOf('\\');
F.thumnail.value = F.upfile.value.substring(pos+1) + '_thumnail.jpg';
}
※ パスの部分は削除しているが拡張子は残してある。元ファイルの拡張子は在っても邪魔にならないと思う。
ただ、全角や妙な記号混じりのファイル名とか来たら困るので
この手の処理はサーバ側でやるのが常。
(使えるなら元のファイル名を使う、使えないファイル名が来たら適当に連番を振ってやる。とか)
ふむふむ
具体的なコードありがとうございます。
ブラウザの仕様などによっても違うのですね。
サーバサイドしかやったことがないので、その辺わかりませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
追加ボタンを押した際に ok ボ...
-
JavaScriptで コードを変数で...
-
JQueryでfunctionに引数としてI...
-
<textarea>の最後尾に追加した...
-
複数のテキストボックスの値の...
-
JavaScriptのfileオブジェクト...
-
Javascriptで'(シングルクォー...
-
セレクトメニューの値の取得
-
HTMLのフォーム名とJavaScript...
-
Java Scriptで・・・
-
プルダウンメニューの項目で1つ...
-
tableの任意行にfocusをあてる
-
JavaScriptで次のような動作を...
-
特定<table>内の<td>の色を変える
-
チェックボックス付きのテーブ...
-
大文字か小文字かを判断する方法
-
Visual Studioのデザインでの非...
-
イベント発生時に入力待ち状態...
-
slickのレスポンシブ > center...
-
フォームの送信ボタンを画像に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
JavaScriptのfileオブジェクト...
-
クリックさせたいが、click()が...
-
javaScriptの変数をJavaの変数...
-
innerHTML内では改行は禁止?
-
VB.NETで<Input>タグ、<text...
-
BackSpaceしたい(QNo.2734284の...
-
formのfileの値をhiddenでも持...
-
onclickが動作しない
-
ボタンかリンクをクリックする...
-
WordpressのCocoonというテーマ...
-
フォームのNAMEを変数に格納し...
-
JavaScriptでの足し算処理について
-
インラインフレームから親ウィ...
-
タグ実験で
-
リスト追加
-
localStorage
-
javascriptでtextareaに文字列...
-
onClickがinput type="image"だ...
-
ボタンで配列に代入
おすすめ情報