お疲れ様です。いつもお世話になっております。
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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
Javascript_submit()完了後に処理したい
JavaScript
-
<input type=hidden" >で配列(複数の要素)を渡したいとき?"
PHP
-
PHPでファイルアップロード時に確認画面を挟みたいです
PHP
-
-
4
htmlのfileタグに自動で値を入れる方法
JavaScript
-
5
テーブルタグの中にdivを含めてはダメ?
HTML・CSS
-
6
GROUP BYを行った後に結合したい。
Oracle
-
7
hiddenの値が期待した値で取得されないのです
Java
-
8
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
9
tableタグとformタグの組み合わせ
HTML・CSS
-
10
input type=hidden"で取得した項目に値が重複してセットされてしまいます。"
HTML・CSS
-
11
return trueとreturn falseの用途・違いは・・・?
JavaScript
-
12
jsp~jspにhiddenを使って変数を飛ばしたい
JavaScript
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
formのfileの値をhiddenでも持...
-
JavascriptでDOM-based XSSの発...
-
クリックさせたいが、click()が...
-
VB.NETで<Input>タグ、<text...
-
javaScriptの変数をJavaの変数...
-
追加ボタンを押した際に ok ボ...
-
親ウィンドウのフォームの値を変更
-
vbscriptでIE自動入力(コンボ...
-
onclickが動作しない
-
オンクリックで現在時刻の取得→...
-
ボタンかリンクをクリックする...
-
JavaScriptのfileオブジェクト...
-
innerHTML内では改行は禁止?
-
JSやVBSで、ボタンを押す...
-
マウスをブラウザの外に出した...
-
正規表現で複数マッチ条件で悩...
-
return trueとreturn falseの用...
-
【jsp/Java】チェックボックス...
-
リストボックス内の重複したも...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
JavascriptでDOM-based XSSの発...
-
onclickが動作しない
-
クリックさせたいが、click()が...
-
追加ボタンを押した際に ok ボ...
-
innerHTML内では改行は禁止?
-
ボタンかリンクをクリックする...
-
formのfileの値をhiddenでも持...
-
javaScriptの変数をJavaの変数...
-
JavaScriptのfileオブジェクト...
-
VB.NETで<Input>タグ、<text...
-
受け取ったパラメータが文字化け
-
JQueryでfunctionに引数としてI...
-
javascriptで作成されたテーブ...
-
jQueryで設定したイベントハン...
-
開いた子ウィンドウにあるボタ...
-
コードレビューをお願いします。
-
ボタンをクリックするとテキス...
-
BackSpaceしたい(QNo.2734284の...
-
URL 判定
おすすめ情報