6

My extjs code like http://www.objis.com/formationextjs/lib/extjs-4.0.0/docs/api/Ext.form.field.File.html

Ext.create('Ext.form.Panel', {
    title: 'Upload a Photo',
    width: 400,
    bodyPadding: 10,
    frame: true,
    renderTo: Ext.getBody(),    
    items: [{
        xtype: 'filefield',
        name: 'photo',
        fieldLabel: 'Photo',
        labelWidth: 50,
        msgTarget: 'side',
        allowBlank: false,
        anchor: '100%',
        buttonText: 'Select Photo...'
    }],

    buttons: [{
        text: 'Upload',
        handler: function() {
            var form = this.up('form').getForm();
            if(form.isValid()){
                form.submit({
                    url: 'photo-upload.php',
                    waitMsg: 'Uploading your photo...',
                    success: function(fp, o) {
                        Ext.Msg.alert('Success', 'Your photo "' + o.result.file + '" has been uploaded.');
                    }
                });
            }
        }
    }]
});

my photo-upload.php file

echo "{success:true}";

But when success o.result.file show undefined. I think it will show file name after success.
How can i make it show file name after success thanks

3 Answers 3

1

You are just returning "{success:true}" which is not even valid JSON but expect ExtJS to provide you with even more data?

Try to return JSON like

{ "success": true, "file": "filename" }

so that there is a file property in the result that the client can read.

Sign up to request clarification or add additional context in comments.

1 Comment

I did this: $result = array( 'success' => 'true', 'file' => 'filename.ext' ); $x= json_encode($result); echo $x;
0

just return proper json construction to eval in front end.

To display the file name as a message, u dont need to return value from backend, already it available with you. refer below code

var fileUploadComp = // eg: Ext.getCmp('DictUploadField'); var fileName = fileUploadComp.getValue();

place this fileName in your message.

Thanks.

Comments

0

​Note: server response type should be "text/html".

return Json(new {
    success = true,
    msg = "Your file has been uploaded"
}, "text/html");

Live demo is here

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.